最开始Servet+Jsp做项目时,后台访问链接都是一个个配,服务器也只拦截web.xml里配置的。开始使用Spring mvc框架后,配置时都是把所有的访问都交给spring的分发器来处理。
web.xml里一般都这样写:
<servlet>
<servlet-name>SpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
最近在配置时,发现静态资源也被拦截了,记录一下简单解决方法,方便以后查找。
第一种方式:使用Tomcat的defaultServlet
在web.xml文件里配置静态资源,有几种依次在后面配置即可
<!-- 激活Tomcat的defaultServlet来处理静态文件 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
//备注:第二种方式,暂时有问题,静态页面可以直接访问,但其他业务链接不能访问
第二种方式:使用Spring mvc给出的默认servlet来处理
在项目Spring mvc 配置文件(我在项目中命名为applicationContext.xml)里增加如下配置
<!-- 配置静态资源为默认Servlet处理 -->
<mvc:default-servlet-handler />
后续有跟进