zoukankan      html  css  js  c++  java
  • 关于使用"/"来 dispatcherServlet 的urlpattern带来的问题

    之前一直使用*.do来做的,但是绝的*.do很丑,于是就改用“/”来配置:

       <servlet>
            <servlet-name>dispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>dispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    

    但是带来的问题是如何访问到静态的文件,如jpg,js,css?

    如果你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题。

    如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对*.js,*.jpg等静态文件的访问也就被拦截了。

    我们要解决这个问题。

    目的:可以正常访问静态文件,不可以找不到静态文件报404。

    方案一:激活Tomcat的defaultServlet来处理静态文件

    <servlet-mapping>   
        <servlet-name>default</servlet-name>  
        <url-pattern>*.jpg</url-pattern>     
    </servlet-mapping>    
    <servlet-mapping>       
        <servlet-name>default</servlet-name>    
        <url-pattern>*.js</url-pattern>    
    </servlet-mapping>    
    <servlet-mapping>        
        <servlet-name>default</servlet-name>       
        <url-pattern>*.css</url-pattern>      
    </servlet-mapping> 
    

      

    要写在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入Spring了,我想性能是最好的吧。

     

    Tomcat, Jetty, JBoss, and GlassFish 自带的默认Servlet的名字 -- "default"
    Google App Engine 
    自带的 默认Servlet的名字 -- "_ah_default"
    Resin 
    自带的 默认Servlet的名字 -- "resin-file"
    WebLogic
     自带的 默认Servlet的名字  -- "FileServlet"
    WebSphere  
    自带的 默认Servlet的名字 -- "SimpleFileServlet" 

     另外还有其余两种解决方法,大家可以参看:http://blog.csdn.net/this_super/article/details/7884383


    ==============================================================================

    本博客已经废弃,不在维护。新博客地址:http://wenchao.ren


    我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
    们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
    实我是一个程序员

    ==============================================================================
  • 相关阅读:
    WebSocket 实战--转
    ELK原理与介绍
    linux命令:使用less从后向前查看日志信息
    Unity创作赛车游戏的四款插件
    Dolly
    shot
    Unity3D获取Android平台的电量
    Unity制作王者荣耀商业级手游
    unity热更新AssetBundle框架设计_框架篇
    喷气传动
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2834209.html
Copyright © 2011-2022 走看看