spring mvc 中把jsp檔案放在WEB-INF目錄下
阿新 • • 發佈:2019-02-16
目的
為了保證系統的安全性,web應用的內容結構中,把所有的靜態內容放在web-content目錄下。把所有的動態內容(*.jsp)放在WEB-INF目錄下的/views/目錄下
1.部署過程
a .在web.xml中配置引入sping-mvc的配置
<servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:META-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
上述配置,就是引用spring-mvc的配置
b.spring-mvc中的配置,定義跳轉的檔案的前後綴 ,檢視模式配置
<!-- 定義跳轉的檔案的前後綴 ,檢視模式配置 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/views/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <!-- spring mvc 能夠訪問靜態內容 begin --> <mvc:resources location="/js/" mapping="/js/**" /> <mvc:resources location="/css/" mapping="/css/**" /> <mvc:resources location="/imgs/" mapping="/imgs/**" /> <mvc:resources location="/html/" mapping="/html/**" /> <!-- spring mvc 能夠訪問靜態內容 end -->
這樣,所有的jsp都可以放入/WEB-INF/views/目錄下
2.注意的問題
- 不同於jsp放在web-content目錄下的情況。放在/WEB-INF/views/目錄下的jsp是不能通過瀏覽器的url直接訪問的。只能通過mvc的controller進行modelAndView的跳轉。
@RequestMapping(value = "/show_login", method = RequestMethod.GET) public ModelAndView showLoginPage() { if (logger.isDebugEnabled()) { logger.debug("showLoginPage() - start"); //$NON-NLS-1$ } ModelAndView mv = new ModelAndView(); mv.setViewName("/user/login"); if (logger.isDebugEnabled()) { logger.debug("showLoginPage() - end"); //$NON-NLS-1$ } return mv; }