请求转发与重定向
请求转发
语法格式:
request.getRequestDispatcher(URL地址).forward(request, response);
实现代码:
1 public class OneServlet extends HttpServlet { 2 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 3 doGet(request, response); 4 } 5 6 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 7 //请求转发到index.jsp request.getRequestDispatcher("/index.jsp").forward(request,response); 8 } 9 }
重定向:
语法格式为:
response.sendRedirect(URL地址);
response.sendRedirect(request.getContextPath() + URL地址);
实现代码:
1 public class OneServlet extends HttpServlet { 2 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 3 doGet(request, response); 4 } 5 6 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 7 //重定向到index.jsp 8 response.sendRedirect("index.jsp"); 9 } 10 }
转发和重定向的区别:
请求转发:
在服务器内部完成,用户感知不到,浏览器地址栏不变,整个过程浏览器只发出了一个请求,目标资源可以在WEB-INF目录下。
重定向:
服务器以302状态码通知浏览器访问新地址,浏览器地址栏改变,整个过程浏览器发出两次请求,目标资源不可以在WEB-INF目录下。

浙公网安备 33010602011771号