转发和重定向的路径问题
- 1.请求转发:路径中不应该包含项目映射的路径
- 1.请求转发login.jsp
- 1.request.getRequestDispatcher("/login.jsp");
- 1.请求转发login.jsp
public void doGet(request, response)throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
// 将数据存储到request对象中
request.setAttribute("company", "英雄联盟");
RequestDispatcher dispatcher = request.getRequestDispatcher("/ResultServlet");
dispatcher.forward(request, response);
}
}
- 2.请求重定向:路径中需要包含当前项目映射的路怪
- 1.重定向到login.jsp
- 1.response.sendRedirect("/Servlete09/login.jsp");
- 1.重定向到login.jsp
- 3.如何记忆:
- 1.请求转发的目标有限制:只能是当前项目内部的资源
- 2.请求重定向的目标没有限制,因此必须添加项目路径来限定
转发和重定向的区别
1、转发︰用于实现Servlet和JSP的协作,Servlet处理完业务转发到JSP显示处理结果。
- 浏览器对服务器发起的一次请求,请求在Servlet到JSP之间转发
2、重定向:一个URL请求处理后,返回302状态和目标URL由客户端浏览器重新定向到新的URL。
- 服务器和浏览器配合,浏览器先后发起了两次请求,两个请求可以跨越不同的网站。