web 应用中的全局变量

24
Web 应应应应应应应应 1.cookie 技技 2.sendRedirect() 技技 3. 技技技技技技 4.session 技技

Upload: egan

Post on 12-Jan-2016

102 views

Category:

Documents


7 download

DESCRIPTION

Web 应用中的全局变量. 1.cookie 技术 2.sendRedirect() 方法 3. 隐藏表单技术 4.session 技术. Cookie( 小甜饼 ) 技术. 服务器在客户端保存用户的信息,就是 Cookie 技术。 这些信息 数据量并不大 ,服务器需要时可以从客户端读取,一般保存在客户端 C:\Document and Settings 目录里 。. Cookie 在 Web 应用中的表现. 1. 保存用户名、密码,在一定时间内不用登录。 2. 记录用户访问网站的喜好 ( 例如网站背景音乐等 ) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web 应用中的全局变量

Web应用中的全局变量

1.cookie 技术 2.sendRedirect() 方法 3. 隐藏表单技术 4.session 技术

Page 2: Web 应用中的全局变量

Cookie(小甜饼 )技术 服务器在客户端保存用户的信息,就是 Cooki

e 技术。

这些信息数据量并不大,服务器需要时可以从客户端读取,一般保存在客户端 C:\Document and Settings 目录里。

Page 3: Web 应用中的全局变量

Cookie在Web应用中的表现 1. 保存用户名、密码,在一定时

间内不用登录。

2. 记录用户访问网站的喜好 ( 例如网站背景音乐等 )

3. 网站的个性化服务,例如定制服务、内容等。例如订阅天气预报等

Page 4: Web 应用中的全局变量

sendRedirect()方法 通过该方法将一个信息传递给下一个页面, 例如: sendRedirect(“welcome?userName

=oyhj”); 的形式。

优点:传递信息的速度很快。 缺点:它只能传递一个字符串,而不能传递对

象。

Page 5: Web 应用中的全局变量

sendRedirect()方法 (续 ) sendRedirect(“welcome?userName=oyh

j”);

(1) welcome 代表要跳转到的 servlet 的 url 。 (2) servlet 名和变量名之间要有个 ? 。 (3) 如果传递两个以上的变量,变量之间要

用 & 。 (4) 如果传递的是中文,需要进行编码处理。

Page 6: Web 应用中的全局变量

sendRedirect()应用案例 对用户登录系统进行改进,在欢迎界面显示

用户的姓名。

源码见 UserLogin(V1.1)

Page 7: Web 应用中的全局变量

隐藏表单 隐藏表单是最常见的一种方式,也是最简单的

一种。

<form action=login> <input type=hidden name=oyhj value=aaa> </form>

见源码: HiddenFormTest

Page 8: Web 应用中的全局变量

Session技术 当用户打开浏览器访问某个网站时,网站服务

器就会在它的内存为这个浏览器分配一个“空间”,这个“空间”被该浏览器独享。空间中存放的数据默认生存时间是 30min ,可以修改。

Page 9: Web 应用中的全局变量

Session在Web中的应用

(1) 实现网上交易平台的购物车功能。 (2) 保存用户的登录信息 (3) 防止用户非法登录到某个页面

Page 10: Web 应用中的全局变量

Session的使用 可以把 Session 理解成一张二维表,这个表有

两列。每一行是 Session 的一个属性,行数没有限制。

一个属性包括两个部分,一个部分是属性的名字,另一个是属性的值。

Session

Name Value

Page 11: Web 应用中的全局变量

Session的使用 (1) 得到 Session 对象 HttpSession hs=request.getSession(true);

(2) 向 Session 添加属性 hs.setAttribute(String name,Object value);

(3) 从 Session 得到某个属性 String name=hs.getAttribute(String name);

(4) 从 Session 中删除某个属性 hs.removeAttribute(String name);

Page 12: Web 应用中的全局变量

Session使用的注意事项 1. Session 中属性默认的生存时间是 30min ,可

以对时间进行修改。 a) 在 web.xml 文件中 ( 服务器的 ) 。 b) 在程序中修改。

2.Session 属性的过期时间指的是间隔时间,而不是累计时间。

3. 当某个浏览器访问网站时,服务器会给每个浏览器分配一个唯一的 Session id ,用来区分每个浏览器。

4. 因为 Session 的属性是要占用服务器内存的,建议谨慎使用 Session 。

Page 13: Web 应用中的全局变量

Session应用案例 在用户登录中,防止用户非法登录到欢迎界

面。

见源码: UserLogin(V1.2)

Page 14: Web 应用中的全局变量

Servlet中操作数据库 Servlet 中操作数据库,与普通 java 文件中操

作数据库类似,需要注意的是要将 JDBC 驱动的 jar 包引入。

(1) 将 JDBC 驱动的 jar 包放到 %TOMCAT_HOME%\common\lib 目录中。

(2) 将 JDBC 驱动的 jar 包放到当前应用的 lib 目录里。

注 : (1) 是当前 Web 服务器下所有 web 应用的公共 jar 包。 (2) 是当前 web 应用的 jar 包。

Page 15: Web 应用中的全局变量

Servlet中操作数据库 将用户登录系统进行改进,用户名和密码放在数据库里。

创建数据库脚本: create table userInfo ( UserID int not null auto_increment, UserName varchar(10), Password varchar(10), E-mail varchar(30), Sex varchar(10), Grade int, primary key(UserID));

源码见 :UserLogin(V1.3)

Page 16: Web 应用中的全局变量

Servlet中访问数据库

建议: Servlet 里面不要写太多的业务逻辑,这样不利用修改,而且影响程序的层次结构。

源码见: UserLogin(V1.3.1)

Page 17: Web 应用中的全局变量

在 Servlet中显示图片 (1) 在 Web 应用的目录下,建立一个专门用

来保存图片的文件夹 ( 例如 Image) 。 (2) 在 Servlet 里面添加代码 : <img src=“Image/ 图片名” >即可。 源码见 :UserLogin(V1.3.2)

注: img 是 Html 语言里面的一个标签。

Page 18: Web 应用中的全局变量

Web应用中的分页技术

分页是任何一个网站 (bbs, 购物商城, blog) 等必备的显示技术之一,因此有必要掌握。

Page 19: Web 应用中的全局变量

分页技术 分页算法: (1) int pageSize: 每页显示多少条记录 (2) int pageCurrent: 当前显示第几页 (3) int pageCount:共有多少页 (4) int rowCount:共有多少条记录 if(rowCount%pageSize==0) pageCount=rowCount/pageSize; else pageCount=rowCount/pageSize+1;

Page 20: Web 应用中的全局变量

分页技术 以 MySQL 为例:将第 N 页的记录显示出来,可采用如下 S

QL语句: select * from userInfo limit (N-1)*pageSize,pageSize; 注: limit 子句使用方法: (1) select * from userInfo limit M; 将表中前 M 条记录取出 (2) select * from userInfo M,N; 从表的第 M+1 条记录开始向后取出 N 条。

以 SQL Server 为例:将第 N 页的记录显示出来,可采用如下 SQL语句:

Select top pageSize * from userInfo where UserID not in (select top pageSize*(pageCurrent-1) UserID from userI

nfo);

Page 21: Web 应用中的全局变量

分页技术案例 对用户管理系统进行修改,在欢迎界面分页

显示所有合法用户的相关信息。

见源码: UserLogin(V1.4)

Page 22: Web 应用中的全局变量

利用超链接显示第几页 利用超链接将分页的个数显示出来,用户可

以随意查看第几页的内容。

在 Welcome 页面完成超链接,本质是 Welcome自己连接自己,但是要将“第几页的信息”传递进来。

源码见 :UserLogin(V1.4.1)

Page 23: Web 应用中的全局变量

测试分页的效率 实际应用中,一张表中的记录会有十几万条,甚至上百万条。扩大表中的记录个数,查看分页效率如何。

Insert into userInfo(UserName,Password,E-mail,Sex,Grade) select UserName,Password,E-mail,Sex,Grade from userInfo

采用该 SQL语句,表中记录成 2 的指数倍增加。

Page 24: Web 应用中的全局变量

显示上一页和下一页 如果要分的页数大多,也不利用用户选择,此

时可添加上一页和下一页功能。

源码见 :UserLogin(V1.4.2)