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的地址。
如下图:

JSP页面跳转之sendRedirect()与forward()辨析的更多相关文章
- JSP 页面跳转中的参数传递
1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...
- JSP页面跳转
JSP页面跳转 RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...
- JSP页面跳转方式
JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- JSP页面跳转的几种实现方法
使用href超链接标记 客户端跳转 使用JavaScript 客户端跳转 提交表单 客户端跳转 使用response ...
- 五种JSP页面跳转方法详解
1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...
- Servlet跳转方式sendReDirect()和forward()
在web应用服务中,经常会面对不同SERVLET之间的跳转,目前我们可以通过以下两种方式实现: 1.RequestDispatcher.forward() 2.ServletResponse.send ...
- 异常之JSP页面跳转出错
今天在开发过程中发现一个问题:在页面中使用了<jsp:forward>抛错Attempt to clear a buffer that's already been flushed!! 百 ...
随机推荐
- 法外之徒第一季/全集Braquo迅雷下载
英文译名 Braquo (第1-2季) (2012-01-05首播)法国.本季看点:<法外之徒>Eddy.Théo.Walter和Roxane私人本是巴黎上塞纳省地区的警察. 因为他们的好 ...
- 吸血鬼猎人巴菲第一至八季/全集Buffy迅雷下载
本季看点:<吸血鬼猎人巴菲>故事背景在现代,话说于每一个世代都会出现一个年青的女孩子,在人世间寻找及对付一些妖魔鬼怪,例如有吸血鬼.坏女巫等等邪恶的势力,而这个年青的女孩子则被称为Slay ...
- mac下配置android开发环境
从昨天下午到如今.用了差点儿相同一整天的时间去熟悉mac和配置环境,基本已经OK了,大体记录了整个过程中遇到的问题. 1.安装java环境 之前听说mac自带java环境.java -version一 ...
- [Android Security] DEX文件格式分析
copy from : https://segmentfault.com/a/1190000007652937 0x00 前言 分析 dex 文件格式最好的方式是找个介绍文档,自己再写一个简单的 de ...
- [Linux] ubuntu各目录含义
/boot/: 启动文件,所有与系统启动有关的文件都保存在这里 /boot/grub/:grub引导器相关的配置文件都在这里 /dev/:此目录中保存了所有设备文件,例如,使用的分区:/dev/hda ...
- java HttpServletRequest和HttpServletResponse詳解
這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...
- Web用户的身份验证及WebApi权限验证流程的设计和实现 asp.net mvc AllowAnonymous 不起作用, asp.net mvc 匿名访问
原文地址: https://blog.csdn.net/zjlovety/article/details/17095627 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个 ...
- 下载Sourceforge等国内无法下载站点文件的另一种方法
Sourceforge是一些开源软件经常用到的网站,然而国内的网站一直不稳定,如今是可以访问,但是一直无法下载,今天发现了一种新方法那就是http://www.mirrorservice.org 这个 ...
- Go语言之进阶篇TCP相互通信
1.TCP相互通信 服务端示例: tcp_server.go package main import ( "fmt" "net" ) func main() { ...
- 【Scala】Scala-case-参考资料
Scala-case-参考资料 scala case_百度搜索 Scala School - 基础知识(续) scala case匹配值 - CSDN博客 scala入门教程:scala中的match ...