【问题标题】:Tomcat and request mappingTomcat 和请求映射
【发布时间】:2012-06-06 20:24:55
【问题描述】:

我被一个简单的 webapp 卡住了。

在其他更复杂的示例无法运行后,尝试测试我在此处找到的示例应用程序: http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

我试图在Tomcat下运行它,所以我只改变了

<servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

到

<servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/samplejsp/*</url-pattern>
</servlet-mapping>

部署到 Tomcat 后,我​​尝试在 Web 浏览器上获取欢迎页面,但我看到的只是: “http://localhost:8080/samplejsp/”、“http://localhost:8080/samplejsp/welcome”、“http://localhost:8080/welcome/”的“HTTP 状态 404”。

尝试使用 Eclipse 调试 servlet 没有帮助,eclipse 连接到 tomcat,但没有任何反应,并且断点在请求提到的 url 时保持不变。

Tomcat 将应用程序显示为已部署并正在运行。

我想我对请求映射一无所知,但我没有更多的想法。感谢您的帮助,很抱歉引用外部页面。

【问题讨论】:

  • 第一个配置的行为是什么?
  • 我已经尝试过了并请求“localhost:8080/welcome”,行为是一样的。
  • 您的 Web 应用程序的上下文路径是什么?如果您通过 WAR 文件或扩展 WAR 目录进行自动部署,那么它将是 WAR(带有 .war)扩展名的名称,如果名称是 ROOT.war(或“ROOT”,则为“”(空)如果是目录)。

标签: tomcat servlets spring-mvc


【解决方案1】:

&lt;url-pattern&gt; 是相对于 web 应用程序,而不是 Tomcat 服务器。

如果您指定 &lt;url-pattern&gt;/samplejsp/*&lt;/url-pattern&gt; 之类的内容,并且您的应用程序安装在 /samplejsp,则 servlet 将驻留在:http://localhost:8080/samplejsp/samplejsp/

有关更多信息,请参阅web.xml Deployment Descriptor Elements 的 Oracle 文档。

【讨论】:

    【解决方案2】:

    servlet 映射中的&lt;url-pattern&gt; 不应包含应用程序上下文根。

    将&lt;url-pattern&gt;/samplejsp/*&lt;/url-pattern&gt; 更改为&lt;url-pattern&gt;/*&lt;/url-pattern&gt;

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多