jsp实现数据保存

来源:岁月联盟 编辑:exp 时间:2012-08-28

一、Session保存用户名
我们在上网的时候,经常遇到这种情况:
注册成功之后自动登录
登录后记住了用户的状态,并在多个页面显示用户名

其实这些效果是使用了session的一个内置对象,这个内置对象也称为会话
简单的说,我们在使用浏览器访问服务器的时候,与服务器产生了通话
使用会话可以使我们在使用浏览器与服务器进行多次请求中保存和使用数据
首先在注册成功后,我们可以在session中保存一个与你相关的标志,比如说你的用户名
然后可以跳转到其它页面来检查,session是否有与你相关的标志

 

每一个session都有唯一一个sessionid,这个ID是由服务器产生的,产生后就会随着响应发到你的浏览器
你的浏览器会记住这个ID,以后再想服务器发送请求的时候就会带着这个ID
而服务器在请求中拿到sessionid的话,就可以在服务器端找到相应的SESSION

 

如果没有适当的清理机制,服务器保存的会话数量会越来越大,从而导致服务器崩溃
对于服务器而言有两种清除数据的方式:
1.程序主动请求清除数据,比如登录以后的注销功能
2.服务器会主动清除长时间没有再次发送请求的session


二、Cookie自动填写用户名
在浏览器关了,就结束了会话,但还能实现自动登录,每次访问邮箱的时候,页面就自动填写了用户名
这里就是使用了Cookie以文件的方式保存了数据
Cookie是在客户端以文件的方式保存数据,如果有人窃取了这个文件,就会暴露了隐私数据

三、application实现计数器
在一些页面上我们可以了解到该页面的访问次数
要实现这个功能就需要使用到application对象
每一个WEB项目都会有一个Application对象
application对象可以在整个项目中共享使用数据
每一次访问页面的时候,计数器就加1


四、各种保存对象的对比
request中保存的数据仅在一次请求中可以使用
session中存储的数据在一个会话的有效期内可用,例如当关闭浏览器会话就丢失
application中存储的数据是在整个web项目中最长,只要服务器不停止都可以使用,
比较适用于需要整个项目中共享访问数据或者多个用户都需要使用的数据