java web 02 关于JSP跳转中request共享问题
来源:互联网 发布:大数据项目知识点 编辑:程序博客网 时间:2024/06/05 06:36
一、首先来看可以共享request的情况:
(1)<jsp:include page="...">
页面间有包含关系的,包含进来的页面中的request中的属性和原页面共享属性数据以及请求参数,
(2)属于服务器端进行跳转的方式
(i)<jsp:forward page="...">用于从一个页面跳转到另一个页面,要跳转的页面也可进行共享原页面中request中设置的属性以及请求参数。这种jsp界面使用forward的方式与Servlet中forward()是相同的道理
(ii)forward()方法
使用到javax.servlet.RequestDispatcher类
RequestDispatcher rd =getServletContext().getRequestDispatcher("url");
rd.forward(requestVar,requestVar); //传递servlet的入口参数
forward函数已经把原页面的request,response对象传入新的页面,因此这新旧页面拥有相同的request,response对象。
request.getparameter("var")就可以得到相应的值.
forward()是直接在server做的,浏览器并不知道,也不和浏览器打交道,这也是浏览器的地址不变化的原因。
二、不能共享request的jsp跳转方式
(1)JavaScript跳转
属于脚本语言的直接定位,不经过服务器传参,所以不能共享request数据
(2)、HTML语言的自动跳转
<html>
<head>
<meta http-equiv="refresh"content="0;url="http://www.baidu.com">
0是等待时间,如果设置为5表示等待5s后开始跳转
</head>
…………
(3) response跳转
Response跳转方式其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地 址栏上可以看到地址的变化。新页面不能处理旧页面的pagecontext(request,response,...)对象.
(4)还有的情况是HTML的特征,用src作为页面链入时也是不能进行request属性数据以及参数共享,
(i)如<a></a>标签中的href=”…”,
(ii)还有例如常用的frameset
<frameset id="set" title="set">
<frame src="left.jsp" name="leftFrame" scrolling="auto"/>
<frame src="right.jsp" name="main" scrolling="auto"/>
</frameset>
其中当前主页面和left.jsp和right.jsp不共享request对象.
(iii)然后就是直接定位的window.open(),window.location()等函数都不能进行request对象属性数据共享,以及请求参数共享的情况 中,request对象在跳转到新页面时被清空了.并没有经过服务器的传递.
虽然通过客户端进行跳转的方式很简单方便,但在共用request内容对象时就不方便了,但是这时候可以考虑使用session来存储对象数据.session是以浏览器级别的环境,上面所有情况都可以共享,当然在相同系统环境, 且不关闭浏览器为前提下。
- java web 02 关于JSP跳转中request共享问题
- JSP跳转中request共享问题
- JSP跳转中request共享问题
- JSP跳转和request 共享
- java web 的jsp的跳转问题
- jsp 中 request跳转和response 跳转
- jsp中关于request.getParameter中文的乱码问题
- jsp的response.sendRedirect()与request.getRequestDispatcher()关于路径跳转的问题
- java web jsp 页面跳转
- jsp中页面跳转request.sendRedirect和request.getRequestDispatcher
- 关于jsp中条件页面跳转的问题
- JSP中request相关问题
- servlet中通过request.getRequestDispatcher跳转到jsp页面汉字乱码问题
- servlet中通过request.getRequestDispatcher跳转到jsp页面乱码问题
- JSP关于request.getParameter("");中文乱码问题
- java web 错误页面和jsp跳转
- 关于跳转的路径问题 struts jsp
- java web 01 关于jsp页面的跳转的5种方式
- LeetCode练习与总结
- iOS基础知识点
- 文章标题
- 欢迎使用CSDN-markdown编辑器
- 关于ubuntu浏览器模糊不清的解决方法
- java web 02 关于JSP跳转中request共享问题
- Debian 安装缺少 iwlwifi
- Android开发中最基础的清单文件中各种不同的标签什么意思有什么作用和androidz中常用的显示单位及单位的换算
- MySQL事务
- STM32中GPIO的8种工作模式!
- Linux中电源管理接口
- ubuntu14.04编译安装strongswan
- HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
- 采苹果问题