里使用。
4。 如果把变量放到 application 里,就说明它的作用域是 application,它
的有效范围是整个应用。
整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到
服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务
器,就会把上面所有的应用都关闭了。
application 作用域里的变量,它们的存活时间是最长的,如果不进行手
工删除,它们就一直可以使用。
与上述三个不同的是,application 里的变量可以被所有用户共用。如果
用户甲的操作修改了 application 中的变量,用户乙访问时得到的是修改
后的值。这在其他 scope 中都是不会发生的,page; request; session
都是完全隔离的,无论如何修改都不会影响其他人的数据。
我们使用 public Object getAttribute(String name)获得变量值,使用 public
void setAttribute(String name; Object value)将变量值保存到对应作用域中。
举个 pageContext 的例子就是:
37 / 148
…………………………………………………………Page 38……………………………………………………………
// page
Integer countPage = (Integer) pageContext。getAttribute(〃countPage〃);
if (countPage == null) {
pageContext。setAttribute(〃countPage〃; 1);
} else {
pageContext。setAttribute(〃countPage〃; countPage + 1);
}
这里先从 pageContext 中取出名为 countPage 的整数,因为返回的都是
java。lang。Object 类型,所以需要强制转换成我们需要的整形。这里取得的变
量如果不存在就会返回 null,通过判断 countPage == null 来辨别变量是否存
在,如果不存在就设置为 1,如果存在就进行累加,最后使用 setAttribute()
方法将修改后的变量值放入 pageContext。
将其中的 pageContext 换成 request; session; application 就可以操作其他三
个作用域中的变量。
在显示这些变量值的时候,我们没有写
而是使用了{countPage}的形
式,这种{}的形式叫做 el 表达式,是 jsp…2。0 规范的一部分,tomcat 里正好
可以使用。
使用 el 有以下几个好处:
1。 代码量小,并且不需要使用尖括号。
2。 支持从 pageContext; request; session; application 中取值,它会自
动检查四个作用域,不需要特别指定。
3。 如果变量不存在,会输出空字符串〃〃,而不是 null,省去了手工判断的
工作。
4。2。 例子:在线列表
我们做一个新手级的在线用户列表,原理是这样:
1。 用户登录,并把登录使用的用户名保存到 session 中,通过 session 中是
否存在用户名判断用户是否已登录。
session 可以在整个会话过程中保存用户信息,不必每次刷新页面都重新
登录。
2。 用户登录后,将用户名添加到 application 中的在线用户列表。
用户注销时,讲用户名从 application 中的在线列表删除。
38 / 148
…………………………………………………………Page 39……………………………………………………………
只要服务器还在运行着,application 就会保存所有登录用户的信息,所
有用户都可以看到这个在线用户列表。
可以尝试一下 lingo…sample/04…02/中的例子:
1。 进入登录页面,登陆一个用户。
2。 登录成功既看到已登录的用户名,和当前的在线用户列表。
3。 再登录一个用户。
4。 然后就可以看到在线用户列表增加了,可以看到里面包含上次登录的用户
和当前登录的用户。
这时,如果第一个用户刷新页面,也会看到在线用户列表中变成两个人。
39 / 148
…………………………………………………………Page 40……………………………………………………………
5。 现在任何一个用户点击注销,将返回登录页面。另一个用户刷新页面会发
现在线用户列表减少了。
让我们从登录页面 index。jsp 开始,复习一下目前学到的知识。
index。jsp 中显示的是用户登录表单,为了显示 index。jsp 中包含的中文,需要
加上,这里使用的文件
编码是默认的 gb2312。
用户名:
在这个 form 里我们可以输入一个 username 的值,提交的url 是 login。jsp,使
用 post 方法是为了更简单的解决中文问题。在填写了用户名之后,点击登录按
钮,将数据提交到 login。jsp。
login。jsp 中进行的是对用户名的操作,包括获得请求中的用户名,将用户名添
加到 session 和在线用户列表中。
中文编码设置和获得请求参数都已经熟识了。在获得在线用户列表时,先获得
application 中的 onlineUserList,强制转换成 List 类型。如果 onlineUserList
并不存在,我们还需要先对它做初始化,并添加到 application 里。这时有一个
小技巧,因为 onlineUserList 已经放在application 中了,将username 添加进
去后,不必再使用 setAttribute()也可?
小说推荐
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- asp基础入门篇(DOC格式)
- ASP入门与实例-IIS的安装与配置1、运行环境与软件要求Windows 2000 以上(不包括Windows XP Home版)IIS 4.0 以上Microsoft Access 2000Dreamweaver MX2、IIS的安装与配置a.安装IIS若操作系统中还未安装IIS服务器,可打开"控
- 最新章:第23章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- Word2003使用技巧大全(DOC格式)
- Word使用技巧(二)表格使用大全更新时间:2009-11-16 19:32:15 本文共阅读了257次 作者:xushezheng 文章来源:电教组字体大小:大中小一、快速插入表格 拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最大为18行×28列 二、
- 最新章:第1章
- Excel word ppt office使用技巧大全(DOC格式)
- -Page 1-Excel_word_ppt_使用技巧大全(完全版)Excelwordppt使用技巧大全(2011新版本)I-Page 2-Excel_word_ppt_使用技巧大全(完全版
- 最新章:第338章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章