【问题标题】:Servlet mapping to default / in tomcatServlet 映射到默认 / 在 tomcat
【发布时间】:2011-10-05 10:08:00
【问题描述】:

我正在使用一个知道只向 localhost:8080/ 发送请求的外部程序

这样定义 my servlet 是否安全:

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

因为tomcat默认servlet也被映射到它。我正在使用 tomcat 7。

servlet 的优先级是多少?如果我映射到 /resources/* 和 *.jsf 并且 URL 是这样的 localhost:8080/resources/test.jsf - 将调用什么?

【问题讨论】:

    标签: tomcat servlets application-server tomcat7


    【解决方案1】:

    如果我正确理解了您的问题,您是否希望覆盖默认 servlet? 您可以在 tomcat 的 conf/server.xml 中的默认 &lt;Host&gt; 元素中添加上下文元素

    例如:

    <Context path="" docBase="app" />
    

    其中 app 是 webapps 目录中的一个文件夹。 有关详细信息,请参阅文档 here

    不建议将元素直接放在 server.xml 文件中。这是因为它使修改 Context 配置更具侵入性,因为如果不重新启动 Tomcat 就无法重新加载主 conf/server.xml 文件。

    希望对你有帮助。

    【讨论】:

    • 嗨!不,我不是这个意思。我的意思是问这样做是否安全
    • 啊,对。您可能想查看servlet spec仅包含 / 字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。 模式 / 将使您的 servlet 成为应用程序的默认 servlet,这意味着它会选择每个模式没有另一个完全匹配。所以我会说它是安全的。记下规范中提到的隐式映射等。
    猜你喜欢
    • 2012-12-22
    • 2018-11-24
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2013-10-11
    • 2016-10-28
    • 2012-04-08
    • 2010-11-08
    相关资源
    最近更新 更多