我有.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?
答案 0 :(得分:1)
您需要将<form>
定义为
<form id="jform" method="post" action="add">
请注意,action
属性如何不具有领先/
,这使您的客户进入网站的目录,即localhost:8080/
然后add
。
当您将action
指定为add
时,它会相对于当前网址的上下文根即/notebook
进行解释,从而使客户发布到/notebook/add
。