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的地址。

      如下图:

      

      

  • 相关阅读:
    mysql启动失败
    mini.open参数传递
    json的key动态赋值
    Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别
    centos 7.2 安装mongodb 3.4.4免编译
    tomcat 8.0安装ssl证书,及centos7.2 的openssl升级到最新版本,及ERR_SSL_OBSOLETE_CIPHER错误解决
    云服务器 Centos7.0 部署
    笔记
    oracle 视图的创建,游标,left join
    在Extjs中对日期的处理,以及在后端数据在SQL语句的判断处理
  • 原文地址:https://www.cnblogs.com/ygj0930/p/6044817.html
Copyright © 2011-2022 走看看