- web.xml配置DispatchServlet
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatchServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
-
url-pattern的配置
/代表一种固定的拦截
/* 代表一种拦截全部的拦截
-
使用/后DispatchServlet不会拦截.jsp但是会拦截静态资源
因为tomcat自身有一个默认的web.xml,这个web.xml中也有各种url-pattern的配置,针对.jsp有JspServlet,针对静态资源有DefaultServlet,前者配置的url-pattern不是/,后者配置的url-pattern是/,因此静态资源
-
如何解决配置了/会拦截静态资源的问题?
1、<mvc:default-servlet-handler/>
会有一个DefaultServletHttpRequestHandler对静态资源进行拦截,交给web应用服务器tomcat。
缺点:只能将html等静态文件放到webapp的根目录下,不能放到resources目录下。
2、<mvc:resources mapping="/resources/**" location="classpath:/"/>
将路径以resources开头的文件映射到resources目录下。
网友评论