• SendRedirect和forward差分



    (1)重定向JSP实现JSP/Servlet跳转到目标资源的方法中,基本的想法是:server目标资源完成URL通过HTTP

    在回答本报发client浏览器。收到的浏览器URL更新到地址栏后,而目标资源URL交给server。

    重定向使目标资源的

    URL从server传到client浏览器,再从client通过HTTP请求传回server。当中有一定的网络时延。 


    (2)实现JSP页面跳转的主要方法有转发跳转(forward)和重定向跳转(redirect), RequestDispatcher.forward()实现的是转发跳转。

    response.sendRedirect()实现的是重定向跳转。 


    两者的最大差别在于:


    1.重定向是通过client又一次发送URL来实现,会导致浏览器地址更新,而转发是直接在server端切换程序,

    目标资源的URL不出如今浏览器的地址栏中。  

    2.转发可以把当前JSP页面中的request、response对象转发给目标资源,而重定向会导致当前JSP页面的

    request、response对象生命期结束,在目标资源中无法取得上一个JSP页面的request对象。


    3.转发跳转直接在server端进行。基本上没有网络传输时延,重定向有网络传输时延。

     


    假设要实现server中两个Servlet程序间跳转,而且要使用request作用范围变量交换数据,应该优先

    使用request转发跳转。

    用重定向实现程序跳转时,假设要求传递数据给目标资源,一个简单、可行的

    方法是把数据编码在URL查询串中,比如:http://127.0.0.1:8080/exam.jsp?name=tom







    案例分析:

    (1)重定向 (sendRedirect):是将用户从当前的页面或servlet定向到还有一个JSP页面或sevlet中;

    上图中,我们第一次请求jsp1没有得到想要的数据,这种话server就告诉client,你能够请求JSP2区获取你想要的数据,也就是有两次请求的过程,所以使用重定向的话地址栏中就会有变化。

    也就是说重定向。不能将用户对当前页面或还有一个servlet的请求转发给所指定的资源,因此重定向的目标也米娜或servlet对象无法使用request获取用户提交的数据。【8


    (2)转发(requestDispatcher):就是讲用户对当前jsp页面或servle的对象请求转发给还有一个jsp页面或servlet对象,可是转发的过程是在server内部。因此地址栏中不会有地址的变化。也不须要client又一次发送请求信息:


    它使用户请求。



  • 相关阅读:
    /bin/bash^M:损坏的解释器: 没有那个文件或目录
    QT槽函数处理线程
    Strategy策略模式
    Proxy代理模式
    Ubuntu系统修改BIOS时间问题
    Ubuntu下安装Goldendict(翻译软件)
    自定义QMenu
    C connect实现Timeout效果(Windows)
    059 Python计算生态概览
    058 程序设计方法学小结
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5043223.html
Copyright © 2020-2023  润新知