URL 映射问题
URL mapping issue
我有一个名为 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 through the link on the main page. Page http://localhost:8080/notebook/add.html contains that form and after submiting it I go to the http://localhost:8080/add instead of http://localhost:8080/notebook/add。
甚至在我在 servlet 映射和表单操作标记中重新映射 /add 到 /notebook/add 之后,我在提交表单后转到 http://localhost:8080/add。
如何使 http://localhost:8080/notebook/add 而不是 http://localhost:8080/add?
您需要将 <form>
定义为
<form id="jform" method="post" action="add">
请注意,action
属性如何没有前导 /
这就是让您的客户转到 网站的根 目录的原因,即 localhost:8080/
然后 add
.
当您将 action
指定为 add
时,它会相对于当前 URL 的 上下文根 进行解释,即 /notebook
从而使客户端 post 变为 /notebook/add
.
我有一个名为 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 through the link on the main page. Page http://localhost:8080/notebook/add.html contains that form and after submiting it I go to the http://localhost:8080/add instead of http://localhost:8080/notebook/add。
甚至在我在 servlet 映射和表单操作标记中重新映射 /add 到 /notebook/add 之后,我在提交表单后转到 http://localhost:8080/add。
如何使 http://localhost:8080/notebook/add 而不是 http://localhost:8080/add?
您需要将 <form>
定义为
<form id="jform" method="post" action="add">
请注意,action
属性如何没有前导 /
这就是让您的客户转到 网站的根 目录的原因,即 localhost:8080/
然后 add
.
当您将 action
指定为 add
时,它会相对于当前 URL 的 上下文根 进行解释,即 /notebook
从而使客户端 post 变为 /notebook/add
.