1 servlet请求转发路径
以下面web工程为例:
我在 listAllServlet.java 中使用请求转发,目标地址是 WebContent\jsp\listAll.jsp
请求转发的默认路径是从根目录WebContent开始的,所以此时如果直接将请求地址写成:
request.getRequestDispatcher("listAll.jsp").forward(request, response);
是转发不过去的,因为在根目录 WebContent 下找不到 listAll.jsp 这个文件,这个文件存放在根目录下的 jsp文件夹中,所以正确的请求地址应该是:
request.getRequestDispatcher("jsp/listAll.jsp").forward(request, response);
2 表单action的提交路径
2.1 提交路径为根目录 WebContent 中的某个文件
例如 register.html 中的表单action提交路径为根目录下的 jsp 文件夹下的 register_do.jsp 时,可以使用相对路径和绝对路径两种方式:
a、相对路径
<form action="../jsp/register_do.jsp" method="post">
xxxxxx
xxxxxx
</form>
b、绝对路径
<form action="/web工程名/jsp/register_do.jsp" method="post">
xxxxxx
xxxxxx
</form>
2.2 提交路径为web工程中的servlet,配置servlet的映射路径
以下面的web工程为例,点击 register.html 中的提交按钮,请求跳转到 RegisterServlet.java 中进行业务处理。
在 register.html 中表单代码如果所示:
<form action="Register" method="post">
xxxxxxx
xxx
</form>
action 的提交路径是Register,当点击提交按钮时,生成的请求url是{http://主机名:端口号/web工程名/register/Register}。
所以这里配置 RegisterServlet.java 的映射路径是:
@WebServlet(name="registerServlet", urlPatterns= {"/register/Register"})
public class RegisterServlet extends HttpServlet {
xxx
xxxxxxxx
}