Advertisement

为什么在maven创建的项目中不能使用静态资源???

阅读量:
复制代码
 为什么在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>

全部评论 (0)

还没有任何评论哟~