SpringMVC框架中jsp页面引用的js,css,html文件在运行时出现404错误

            SpringMVC框架中, jsp页面引用的js,css,html等静态文件在运行时出现404错误,也就是说找不到文件路径;

    我在引用的时候写的是相对路径,并且路径是完全正确的,那为什么会出现这种错误呢?

    一.现象:

      1.如果你的配置描述符文件(web.xml)中,DispatcherServlet拦截为"*.do"这样的有后缀的URL,就不存在访问不

       到静态资源的现象。

      2.如果你的配置描述符文件(web.xml)中,DispatcherServlet拦截为"/",就会出现访问不到的的现象;

    二.解决办法:

      1.方案一:激活Tomcat的defaultServlet来处理静态文件,当然要写在DispatcherServlet的前面, 让defaultServlet先拦截请求,

        Tomcat, Jetty, jboss, and GlassFish 自带的默认Servlet的名字 -- "default"

      
	 springServlet
	 org.springframework.web.servlet.DispatcherServlet
	 
	 contextConfigLocation
	 /WEB-INF/spring-mvc.xml
	 
	 2
      
      
	 springServlet
	 /
       
     
      
      
   	 default      
	 *.jpg
      
      
   	 default        
	 *.js
      
      
   	 default           
	 *.css 
      
      
   	 default           
	 *.html
      
    2.方案二:把拦截的"/",换成带后缀的拦截,如果换成带后缀的,所有的请求也要带这个后缀,否则请求就会被过滤掉;

    三.究其原因:

    1.如果DispatcherServlet拦截为"*.do",那么系统只会对.do为后缀的请求进行拦截;如果DispatcherServlet拦截为"/",将对所有的文

     件(包括js css html)进行拦截;

    2.spring为了实现rest风格,当静态文件被DispatcherServlet拦截之后,是不能通过,所以就访问不到;

    rest具体的讲解可以参考如下: http://blog.sina.com.cn/s/blog_616e189f0100snfg.html

  

     

     

   

     

      

 

   


    

       

       

你可能感兴趣的:(jsp,springmvc)