zoukankan      html  css  js  c++  java
  • JSP页面跳转之sendRedirect()与forward()辨析

     转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6044817.html 

     在JSP中,要实现页面的跳转,主要有两种方式实现:forward和sendRedirect。 

      一、forward

      forward实现页面跳转是通过转移请求实现的。客户端向服务器的页面1发出一个请求,页面1编译运行过程中发现处理不了,把这个请求转移(forward)给页面2来处理,这个请求对象封装了一开始客户端发送请求时封装的信息、参数等(也就是说把原来的request对象转发,不会新建request)。页面2对通过这个请求对象提取数据并进行一系列的操作处理后,把结果通过response发回原客户端浏览器显示。整个过程中只发生了一次请求、一次响应。由于宏观上是客户端向页面1发出的请求并通过response收到了响应,所以地址栏上显示的是页面1的地址。而在微观上,即服务器内部页面1调用了多少页面,客户端是不知的。如下图:

      

      二、sendRedirect()

      response.sendRedirect("跳转页面?参数&参数...");

      重定向实际上相当于指引浏览器向另一个页面进行请求。客户端向页面1发出请求,页面1回应客户端说:“你去找页面2吧!”,通过response对象把页面2的地址以及参数发回给客户端。然后客户端又通过1发来的地址向页面2发出请求并把参数传过去(这时已经是另一个request对象了),页面2接收请求并处理后再通过response把结果返回客户端显示。整个过程实际上发生了两次请求、两次响应。两次的请求响应分别独立,互不相同的。由于客户端是进行了两次请求的,所以地址栏上先是页面1的地址然后重定向后显示的是页面2的地址。

      如下图:

      

      

  • 相关阅读:
    Java面试集合(一)
    Speeding up AngularJS apps with simple optimizations
    如何更改Json.NET的序列化规则
    web.xml详解
    [maven] 常用插件解析
    Spring Boot的启动器Starter详解
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    史上最全的maven的pom.xml文件详解
    word 标题映射错乱
    使用Teleport Ultra批量克隆网站,使用Easy CHM合并生成chm文件
  • 原文地址:https://www.cnblogs.com/ygj0930/p/6044817.html
Copyright © 2011-2022 走看看