请求转发与重定向

请求转发

  语法格式:

    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目录下。

 

posted @ 2020-08-07 20:44  ShiQi丶  阅读(145)  评论(0)    收藏  举报