zoukankan      html  css  js  c++  java
  • [ /* 和 / 的区别 ] 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?

    宛如智障,暗藏锋芒
  • 相关阅读:
    给任意多个链表然后要合并成一个
    hdu5967数学找规律+逆元
    poj2125最小点权覆盖+找一个割集
    poj3308 最小点权覆盖
    poj2987 最大闭合权子图基础题
    poj2699 转化为可行性判定问题+二分枚举+最大流
    判断割是否唯一zoj2587
    快排优化
    jvm垃圾收集器
    三次握手与四次挥手
  • 原文地址:https://www.cnblogs.com/zienzir/p/9108706.html
Copyright © 2011-2022 走看看