• [ /* 和 / 的区别 ] Difference between / and /* in servlet mapping url pattern


    <url-pattern>/*</url-pattern>

    The /* on a servlet overrides all other servlets,

    including all servlets provided by the servletcontainer such as the default servlet and the JSP servlet. 

    无论你发送什么请求,都会经过这个servlet.

    通常来讲,只会用在Filter上,进行全部过滤.

    It is able to let the request continue to any of the servlets listening on a more specific URL pattern by calling FilterChain#doFilter().

    <url-pattern>/</url-pattern>

    The / doesn't override any other servlet. 

    它只替换servlet容器的内置默认servlet.

    ps:默认servlet是为那些不匹配任何注册过的servlet准备的.

    通常,它只会在静态资源上调用(CSS/JS/image/etc)和直接侦听.

    servlet容器的内置servlet也有处理Http缓存请求,媒体流和文件下载的能力.

    通常,你不会想要override默认的服务器.

    不然你就不得不取代它的任务,这可不轻松.

    因此,这对于servlet是一个不好的URL-pattern.

    至于JSP页面为什么不会hit到这个servlet,是因为servlet容器的内置JSP servlet会被调用.

    --已经被默认映射成更详细的RUL pattern *.jsp

    <url-pattern></url-pattern>

    然后,还有一个空字符串URL pattern.

    当context root被请求时,它就会被调用.

    这和<welcome-file>途径是不同的,

    它的子文件夹被请求时,它不会被调用.

    这更像是你需要一个"主页servlet"时想要寻找的URL pattern.

    空字符和/ URL pattern的定义和直观期待有所差距,很容易混淆.

    Front Controller

    In case you actually intend to have a front controller servlet, then you'd best map it on a more specific URL pattern like *.html*.do/pages/*/app/*, etc. You can hide away the front controller URL pattern and cover static resources on a common URL pattern like /resources/*/static/*, etc with help of a servlet filter. See also How to prevent static resources from being handled by front controller servlet which is mapped on /*. Noted should be that Spring MVC has a builtin static resource servlet, so that's why you could map its front controller on / if you configure a common URL pattern for static resources in Spring. See also How to handle static content in Spring MVC?

    宛如智障,暗藏锋芒
  • 相关阅读:
    CAM350中DFM检验
    减少VMware中虚拟系统占用的内存资源
    嵌入式系统开发学习如何起步、如何深入
    GNOME3介绍与使用技巧
    局域网网络相关的问题
    开篇:讲讲peopleeditor遇到的问题
    WSDL
    常用shell命令(持续更新)
    X86寄存器及指令介绍
    float型与零值比较的语句;float型与float型如何判断相等
  • 原文地址:https://www.cnblogs.com/zienzir/p/9108706.html
Copyright © 2020-2023  润新知