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


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

    ==============================================================================
  • 相关阅读:
    axios核心技术---1.HTTP相关
    Leetcode刷题
    Java入门13---Optional处理null对象
    Java入门12---Stream
    谈谈前后端分离及认证选择
    react监控props的变化
    如何使用懒加载
    CSS文字超出省略
    React的slot插槽
    React 的函数组件和类组件中的props
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2834209.html
Copyright © 2011-2022 走看看