为什么在maven创建的项目中不能使用静态资源???
静态资源的访问:html\css\js\图片资源等 (注意:jsp不是静态资源)
因为访问静态资源要访问全局web.xml中的DefaultServlet,
映射路径为/,和前端控制器冲突了,而且局部优先,前端控制器没问题,但是静态资源就访问不到了
解决方案1:将web.xml中前端控制器的影射路径改成*.action,访问handler时都带上.action(我们不动全局文件)
<url-pattern>/</url-pattern>改成
<url-pattern>*.action</url-pattern>
缺点:每个都要加.action如 @RequestMapping("/show")-->@RequestMapping("/show.action")
解决方案2:
mvc.xml中加一句:
<mvc:default-servlet-handler></mvc:default-servlet-handler>
<!-- 静态资源访问-->
<!-- 在后端controller中生成一个handler,该handler用于解决静态资源访问
访问优先级最低,其他路径都访问不到的时候就访问/**-->
相当于:
UerController.java中加上了:(用于处理静态资源)
@RequestMapping("/**")
public String resouce(){
//处理静态资源
return null;
}
全局web.xml:
<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>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
为什么在maven创建的项目中不能使用静态资源???
最新推荐文章于 2023-11-12 14:26:59 发布