jsp页面间对象传递方法
严格的来说不能叫做JSP页面间的对象传递,实际应该是页面间对象共享的方法:
1. 通过servletcontext,也就是application对象了,但这种情况要求在同一个web应用下,
2. 通过sessioncontext,也就是session对象了,这种情况一般也是要求在同一个web应用下,
1和2在特定的部署条件下,比如支持对话复制的负载均衡环境下,或者cluster情况下,可以跨服务器。
3. 通过request对象,也就是在request里设置properties了,但是这种情况要求必须使用request.dispatch方法,也就是在server端重定向
4. 通过response.redirect方法,这样既可以利用sesseion和application,如果不在同一个web应用下,就要使用url编码来传递参数了
5.严格来说不算传递对象,但是也是某种意义上的在jsp之间共享对象,就是通过jsp的include指令,server端的include。至于html的server端include,不清楚会怎么样,没有试过,不妨试验一下。
还有其他意义上的传递对象,比如自定义全局变量/映射/hashtable/map之类的(有一个类似的开元框架),又比如对象序列化,然后post方式 提交到另外一个jsp中,或者放到ldap/jndi结构中,甚至放到公用数据库/路径/文件中等等等等,不一而足,只是可能有点儿偏离jsp本身.
Jsp1要传递对象到Jsp2,可以通过类似代理的方式,比如Jsp1先到Action再到Jsp2等方式.
追加一些对jsp的理解:
一:执行时间上:
<%@ include file=”relativeURI”%> 是在翻译阶段执行 编译只会产生一个.class文件,这个.class文件包括当前页面和引入页面 先包含,后编译,不会检查所含文件的变化,适用于包含静态页面 使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错。
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行. 编译会产生两个.class文件,分别为当前页面的.class文件,和引入页面的.class文件 被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信 先编译,后包含 会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数.
由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以对page属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一个页面.还可以添加一些将被引入的页面读取的请求参数.
<jsp:include page=”<%=pageSelectedAtRuntime%>” flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>
二:引入内容的不同:
<%@ include file=”relativeURI”%>
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本.
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.
jsp页面间对象传递方法的更多相关文章
- Servlet页面间对象传递的方法
Servlet页面间对象传递的方法 1.request 2.session 3.application 4.cookie 5.其它的
- JSP页面间的传值方法总结
JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧.试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式.下面来一起看看详细的介绍: 1. URL 链接后追加参数 ? 1 ...
- jsp页面间的传值方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- wp8.1 Study1: 页面导航&页面间值传递
摘要:wp8.1与wp8中很多API是不一样了,wp8.1把以前wp7.x时的api去掉了,更多与win8.1的API相似.比如以下的页面导航和页面之间的值传递 1.页面导航 利用Frame.Navi ...
- JSP页面间传递参数的5种方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- jsp 页面间传递参数
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- 详细介绍ASP.NET页面间数据传递的使用方法
源码:http://www.jinhusns.com/Products/Download/?type=xcj 在ASP.NET中,页面间数据传递的方法有很多.下面为大家总结一下,页面间数据传递的方法. ...
- ASP.NET页面间数据传递的方法<转>
ASP.NET页面间数据传递的方法 作者: 灰色的天空2 来源: 博客园 发布时间: 2010-10-28 11:06 阅读: 822 次 推荐: 0 原文链接 [收藏] 摘要:本 ...
- ASP.NET中实现页面间数据传递的方法
说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是向Session中添加的东西太多会增加服务器的压力,页面间数据传递,数据的作用范围越小越好. ASP.NET页面间数据传递 ...
随机推荐
- Linux 修改最大连接数脚本
#!/bin/bashfileMax=$(grep "fs.file-max" /etc/sysctl.conf | wc -l)if [ $fileMax -eq 1 ];the ...
- numpy中的复合数组
1.复合数组的创建 # 复合数组,最重要的是定义dtype a = np.array([('ABC', [1, 2, 3])], dtype="U3, 3i4") print(a) ...
- django,uwsgi, nginx部署项目
在liunx中环境中 对于nginx来说: 1.先安装nginx sudo apt-get install nginx 2.启动nginx服务 sudo /etc/init.d/nginx resta ...
- Unity 3D调用Windows打开、保存窗口、文件浏览器
Unity调用Window窗口 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...
- 阿里云ECS服务器购买流程 (自定义配置购买、按月、按量购买)教程
阿里ECS云服务器自定义购买流程 本文提供全图文流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- 20155219 2016-2017-2 《Java程序设计》第4周学习总结
20155219 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 抽象方法与抽象类 如果某方法区块中没有任何程序代码操作,可以使用abstract在class ...
- 20155208徐子涵 2016-2017-2 《Java程序设计》第10周学习总结
#### **教材学习总结**网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴. * ...
- Blender Tutorial - Earth curves [Animation nodes]笔记
https://www.youtube.com/watch?v=jEYI4lnOprY&t= Blender Tutorial - Earth curves [Animation nodes] ...
- POI导出Excel--合并单元格
package com.test.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; import ...
- Thread与ThreadPool的内存之战
Thread与ThreadPool使用的时候在内存里对象是如何分布的呢? 今天我们就从内存堆的角度分析下两者. 先上小白鼠代码: static void Main(string[] args) ...