繁体   English   中英

“ /”和“ / *”有什么区别?

[英]What is the difference between “/” and “/*” ?

我试图用谷歌搜索这个问题,但是,似乎谷歌搜索引擎将其读取为某些特殊字符。

那么将服务器映射到“ /”和“ / *”之间有什么区别?

SRV.11.2映射规范

路径映射使用以'/'字符开头并以'/*'后缀结尾的字符串。

  • '*.'开头的字符串'*.' 前缀用作扩展名映射。
  • 仅包含'/'字符的字符串表示应用程序的“默认” servlet。 在这种情况下,Servlet路径是请求URI减去上下文路径,并且路径信息为null。

所有其他字符串仅用于完全匹配。

我的重点

<servlet-mapping>
        <servlet-name>XServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

如果看到映射到匹配所有请求的XServlet ,并且每个请求都命中XServlet

在哪里

 <servlet-mapping>
            <servlet-name>XServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>

现在, XServlet是我的默认应用程序Servlet,它可以提供static资源。

只是为了澄清进一步的混乱: 在/ *上映射全局前端控制器servlet时如何访问静态资源

模式/将使您的servlet成为应用程序的默认servlet,而模式/ *将使所有内容都通过您的servlet。

如果您映射到/,则只有一个URL将匹配:您的服务器URL( http://my.example.org/ )。 如果映射到/ *很多URL的匹配: http://my.example.org/logo.gifhttp://my.example.org/index.jsphttp://my.example.org /detail.html等。

如果您只有1个servlet,并且您的资源不在webapp的根目录下,则使用/可能会有用(无论如何都不应该这样)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM