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又一次发送请求信息:


    它使用户请求。



  • 相关阅读:
    OLAP、OLTP的介绍和比较
    Python发行版本Anaconda的安装说明:基于Anaconda2-4.3.1-Windows-x86_64
    Hive学习:Hive连接JOIN用例详解
    Linux学习一:图解CentOS 6.5安装步骤
    Linux学习二:基于CentOS 6.5的网络配置
    一个恒等式.jpg
    centos 7 The path "" is not a valid path to the 3.10.0-229.el7.x86_64 kernel headers. Would you like to change it?
    Redis从入门到精通
    solr服务的搭建
    SpringMvc的运行流程
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5043223.html
Copyright © 2011-2022 走看看