URL映射问题

时间:2015-02-22 13:44:53

标签: java url tomcat mapping

我有.war文件名为notebook.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

即使在我重新映射/添加到/ notebook / add servlet映射和表单操作标记之后,我在提交表单后转到http://localhost:8080/add

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

1 个答案:

答案 0 :(得分:1)

您需要将<form>定义为

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

请注意,action属性如何不具有领先/,这使您的客户进入网站的目录,即localhost:8080/然后add

当您将action指定为add时,它会相对于当前网址的上下文根/notebook进行解释,从而使客户发布/notebook/add