这样配置会拦截html,js css等静态资源 因为Web容器Tomcat中有一个DefatulServlet 主要提供静态资服务默认的url-pattern也是/ 这里覆盖了,
JSP为什么不拦截呢? 容器tomcat 中还有一个JspServlet,这里并没有重写 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping>spingmvc配置文件中使用下面标签就可以了
<mvc:default-servlet-handler/>会在Spring上下文中定义一个DefaultServletHttpRequestHandler对象 会对进行DispatcherServelt的请求进行过滤,如果发现是一个静态资源请求,会把请求转给Web容器-Tomcat处理 不是静态资源,继承由SpringMVC管理 缺点:静态资源只能放在Webapp根目录下,可以建立目录
使用<mvc:resources标签
<mvc:resources mapping="/resources/**" location="classpath:/"/>location元素表示webapp目录下的static包下的所有文件; 这里是resources目录 mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b; mapping这里表示以resources开头的请求路径 如: http://localhost:8088/resources/test1.html