【问题标题】:URL mapping issue网址映射问题
【发布时间】:2015-02-22 13:44:53
【问题描述】:

我有一个名为 notebook.war 的 .war 文件。我用tomcat部署,放到webapps目录下,然后启动tomcat。

有一个带按钮的表单

<form id="jform" method="post" action="/add">

还有一个servlet,映射在web.xml中

<servlet>
    <servlet-name>Create</servlet-name>
    <servlet-class>controller.CreateServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Create</servlet-name>
    <url-pattern>/add</url-pattern>
</servlet-mapping>

我启动tomcat,在浏览器中输入localhost:8080/notebook,进入主页面,然后通过主页面的链接进入http://localhost:8080/notebook/add.html页面。页面http://localhost:8080/notebook/add.html 包含该表单,提交后我转到http://localhost:8080/add 而不是http://localhost:8080/notebook/add

即使在我将 /add 重新映射到 /notebook/add 中的 servlet 映射和表单操作标记之后,我还是会在提交表单后转到 http://localhost:8080/add

如何制作http://localhost:8080/notebook/add 而不是http://localhost:8080/add

【问题讨论】:

    标签: java url tomcat mapping


    【解决方案1】:

    您需要将&lt;form&gt; 定义为

    <form id="jform" method="post" action="add">
    

    注意,action 属性没有前导 /,这使您的客户进入 网站的根目录 目录,即 localhost:8080/,然后是 add

    当您将action 指定为add 时,它会相对于当前URL 的上下文根 进行解释,即/notebook,因此客户端发布/notebook/add.

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多