问题
在SSM框架下,如果web.xml配置文件如下:
<servlet-mapping>
<servlet-name>spring-Servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其中“/”会导致静态文件(jpg,js,css)被拦截后不能正常显示(其他目录下的文件也同样访问不到)。
解决方法
1:在spring-mvc.xml中启用默认Servlet
<mvc:default-servlet-handler/>
在web.xml中增加对静态资源的处理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/assets/*"</url-pattern>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
特点:使用默认的Servlet进行资源文件的访问,Spring拦截所有请求,然后再将资源文件交由默认的Sevlet进行处理,性能上少有损耗
2:修改web.xml
修改前
<url-pattern>/</url-pattern>
修改后
<url-pattern>*.do</url-pattern>
特点:Spring只是处理以’.do’结尾的访问,性能上更加高效,但是再访问路径上必须都以’.do’结尾,URL不太文雅