SpringMVC静态资源放行
方式一:在web.xml中配置servlet到default
方式二:在springmvc.xml中配置相关非拦截文件夹,如果请求的是这些文件夹的资源,给予放行。
疑点:没有进行以上配置,为什么可以直接访问jsp文件?
tomcat的web.xml中进行了相关配置,所有jsp文件都会交个一个默认servlet对象处理。
<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- The mappings for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
举例
在web.xml中配置servlet到default
交个默认servlet处理, 这个default在tomcat的web.xml中有配置(就是上面的servlet)。
<!-- 配置防止SpringMVC拦截静态资源 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
在springmvc.xml中配置相关非拦截文件夹
<!-- 防止资源文件被spring MVC拦截-->
<mvc:resources mapping="/img/**" location="/img/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>
项目打包 提取码:sy63
环境:eclipse