Servlet中请求的重定向与转发

1.请求的转发

过程示意图:

 

 

代码:request和ServletContext中都可以得到 RequestDispatcher 对象,拿到对象之后forward就可以转发请求。

 req.getRequestDispatcher("/demo").forward(req,resp);

//        this.getServletContext().getRequestDispatcher("/demo").forward(req,resp);

2.请求的重定向

过程示意图:

 

本质(底层逻辑):

 // resp.sendRedirect("/mycontext/getMsg");
        
     //改为如下两行代码后依然实现了重定向的效果 resp.setHeader(
"Location","/mycontext/getMsg"); resp.setStatus(302);

 

 

代码: 重定向时要写注意目标请求的请求全路径

//重定向
        resp.sendRedirect("/mycontext/getMsg");

3.比较

共同点:都能实现页面的跳转

不同点:转发请求url不会发生变化,重定向url会发生变化

 

posted on 2021-05-27 16:01  曾经啊  阅读(168)  评论(0)    收藏  举报