zoukankan      html  css  js  c++  java
  • 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又一次发送请求信息:


    它使用户请求。



  • 相关阅读:
    【OpenCV学习】安防监控可疑走动报警
    【OpenCV学习】OpenMP并行化实例
    【OpenCV学习】cvConvert的使用
    【OpenCV学习】Fuzzy Logic模糊逻辑边缘提取
    C# 委托系列(一)将方法作为方法的参数
    关于dev的Gridview控件的行数据的颜色控制,根据不同的值设置不同颜色
    将gridcontrol导出到excel
    DataGridView中将某行设置为当前可见区域第一行
    如何获得窗体上控件相对于屏幕的位置?
    dev 控件 lookupedit 设置选项值
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5043223.html
Copyright © 2011-2022 走看看