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页面间数据传递 ...
随机推荐
- error:1407742 E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
/********************************************************************************* * error:1407742 E ...
- 【leetcode】27-RemoveElement
problem RemoveElement class Solution { public: int removeElement(vector<int>& nums, int va ...
- Templates中的macro和include标签
1.macro标签 1.作用:相当于在模板中声名函数 2.使用方法: 语法:{% macro 名称(参数列表) %} xxx {% endmacro %} 创建 macro.html 模板文件 - ...
- C#LinQ语法
Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- Gym 102091A: Flying Squirrel(RMQ)
题意:如图,有N个柱子,每次我可以从高柱子X到低柱子Y,而且需要满足中间的柱子都小于X的高度. 思路:现在有Q次询问,每次给定(X,Y),(如果ht[X]<ht[Y],则交换XY),问X为起点, ...
- CF1132.Educational Codeforces Round 61(简单题解)
A .Regular Bracket Sequence 题意:给定“((” , “()” , “)(”, “))”四种,问是否可以组成合法括号匹配 思路:设四种是ABCD,B可以不用管,而C在A或 ...
- dfs——皇后问题(回溯)
#include <iostream> using namespace std; ],b[],c[],d[]; ; dfs(int i) { if(i>n) { sum++; ) { ...
- nginx安装,配置,并可以放静态文件教程
简单介绍一下:nginx是一个高性能的HTTP和反向代理的服务器.能有处理最高5,0000的并发量,是新兴的一个代理服务器.中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 安 ...
- n!的质因子分解
其中k为任意质因子,因为a的数值不确定,所有k的值可以任意选择. 以下代码用于求出m!: #include<bits/stdc++.h> LL getpow(LL n,LL k) { LL ...
- URL编码表(收集到的,为了方便查看)
URL编码表