【转】request和response的页面跳转
跳转:
request.getRequestDispatcher("p3.jsp").forward(request,response);这种方法称为转发,地址栏上的URL不会改变;
重定向:
response.sendRedirect("p3.jsp");这种方法称为重定向,地址栏的URL会改变;
这样实现跳转到p3.jsp;可是这两种方法有着本质的不同,requset是请求,是在服务器端运行的,response是相应,是在客户端运行的;
例如:
有3个页面p1.jsp , p2.jsp , p3.jsp ;
p1.jsp提交给p2.jsp , p2.jsp在转发给p3.jsp
如果在p2用第一种方法发到到p3,由于是浏览器请求的是p2,请求的一些参数被封装在request中,发给服务器,服务器用request.getRequestDispatcher("p3.jsp").forward(request,response);转到p3,把p3发给浏览器,浏览器不知道被偷梁换柱了,所以URL还是p2.jsp;也完全可以用request.getParameter("name");得到p1.jsp中的表单控件的值,因为在这里用了forward()把request传了下去
如用第二种方法,这是浏览器主动请求了p3,所以浏览器知道请求的地址,所以URL变了,
而又一次请求,产生了另外一个request,这个和请求p2的request不同,所以在p3中用request.getParameter("name");得不到p1.jsp中的表单控件的值
总结:
1、request.getRequestDispatcher("a.jsp").forward(rquest,response); request转发 它可以保存request中的数据 页面调整 但是地址是不调整的
2、response.sendRedirect("b.jsp"); 方式是重定向 它的数据是不共享的 也就是说 request中保存的数据在b.jsp页面中是获取不到的 这种方式是表单是不能重复提交的 ,
respons跳转是可以实现跨域的 地址栏也会变化
【转】request和response的页面跳转的更多相关文章
- 【转】request和response的页面跳转传参
下面是一位园友的文章: jsp或Servlet都会用到页面跳转,可以用 request.getRequestDispatcher("p3.jsp").forward(request ...
- Response.Write页面跳转
一.<a>标签 <a href=”test.aspx”></a> 这是最常见的一种转向方法 二.HyperLink控件 1. Asp.net 服务器端控件 属性 ...
- response.sendRedirect页面跳转的方法总结——实习第六天
今天想到要写这个博客完全是因为今天在这上面摔了一跤,同时也意识到了对于一个学Java的人来讲,知其然并且知其所以然是有多么的重要. 今天报了一个错误,讲的是空指针异常,原因就是在response.se ...
- request.getRequestDispatcher不能实现页面跳转的原因
我在JS里面写了个Ajax,传值给servlet,然后利用request.getRequestDispatcher(),打算跳转至另外一个页面.但是没有跳转成功,运行之后没反应. 在网上搜了资料发现, ...
- Servlet页面跳转实现方法的区别
一直对Servlet页面跳转的几种方式理解的糊里糊涂的,今天在网上搜了一把,找到一遍比较好的,记下来,以后看看. Servlet页面跳转分两部分,一是发生在Servlet,一是在JSP,其实JSP也就 ...
- aspx在页面跳转(Response.Redirect)时丢失session问题及解决办法
[问题描述] 假设a.aspx.cs页面保存有Session["empid"]="3",当a.aspx.cs通过Response.Redirect(" ...
- 页面跳转 Server.Transfer和 Response.Redirect的区别
1.Server.Transfer 用于把处理的控制权从一个页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变.因此你能从a页面跳转到b页面 ...
- response.sendRedirect 的功能是地址重定向(页面跳转)
response.sendRedirect 的功能是地址重定向(页面跳转) 1.response.sendredirect(url); 新的页面并不能处理旧页面的pagecontext(request ...
- request获取各种路径总结、页面跳转总结。
页面跳转总结 JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使 ...
随机推荐
- 基于Linux系统的Nagios网络管理模块的实现
基于Linux 系统的Nagios网络管理模块的实现 1.引言 随着计算机网络的普及,网络管理已成为信息时代中最重要的问题之一.在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境.计算机网络管理 ...
- 企业网管软件之SOLARWINDS实战-制作拓扑图
企业网管软件之SOLARWINDS实战-制作拓扑图-开始 企业网管软件之SOLARWINDS实战-制作拓扑图 本文出自 "李晨光原创技术博客" 博客,谢绝转载!
- JS / CSS 实现的便签记录本
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 【2017 Multi-University Training Contest - Team 6】Inversion
[链接]h在这里写链接 [题意] 给出一个序列,求2~n每一个数,下标不是这个数倍数的最大值是什么? [题解] 把a数组从大到小排序. 每个位置i,逆序枚举b数组,找到第一个对应下标不是i的倍数的,直 ...
- [Angular] Http Custom Headers and RequestOptions
updatePassenger(passenger: Passenger): Observable<Passenger> { let headers = new Headers({ 'Co ...
- Undo表空间数据文件损坏
UNDO表空间数据文件和system表空间数据文件都是数据库的关键数据文件,如果损坏会导致sql执行失败,用户无法登录,甚至实例崩溃等.同样恢复UNDO表空间数据文件也必须在数据库mount状态 ...
- Altium Designer线如何跟着原件走
- 【AtCoder Beginner Contest 074 C】Sugar Water
[链接]h在这里写链接 [题意] 让你在杯子里加糖或加水. (4种操作类型) 糖或水之间有一定关系. 糖和水的总量也有限制. 问你糖水浓度的最大时,糖和糖水的量. [题解] 写个dfs就好. 每次有4 ...
- Spring Boot 动态数据源(Spring 注解数据源)
本文实现案例场景:某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库. 为了在开发中以最简单的方法使用,本文基于 ...
- [Vue] Load components when needed with Vue async components
In large applications, dividing the application into smaller chunks is often times necessary. In thi ...