美文网首页java后端开发
开发混淆知识点

开发混淆知识点

作者: 虹猫日志 | 来源:发表于2019-05-17 16:33 被阅读2次

    Forward和Redirect的区别

    简述:

    • Forward(转发):直接请求
     //Servlet里处理get请求的方法
     public void doGet(HttpServletRequest request , HttpServletResponse response){
         //获取请求转发器对象,该转发器的指向通过getRequestDisPatcher()的参数设置
       RequestDispatcher requestDispatcher =request.getRequestDispatcher("资源的URL");
        //调用forward()方法,转发请求      
       requestDispatcher.forward(request,response);    
    }
    
    • Redirect(重定向):间接请求
    //Servlet中处理get请求的方法
    public void doGet(HttpServletRequest request,HttpServletResponse response){
    //请求重定向到另外的资源
        response.sendRedirect("资源的URL");
    
    • Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletRequest类的sendRedirect()方法

    区别:

    • Redirect:

      • 重定向浏览器地址栏发生改变:
      • 服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。它本质上是两次HTTP请求,对应两个request对象。
    • Forward:

      • 转发地址栏不变:
      • 客户端浏览器只发出一次请求,Servlet把请求转发给Servlet、HTML、JSP或其它信息资源,由第2个信息资源响应该请求,两个信息资源共享同一个request对象

    相关文章

      网友评论

        本文标题:开发混淆知识点

        本文链接:https://www.haomeiwen.com/subject/qkuoaqtx.html