由于http协议是无状态的额,因此当一个请求发送web服务器是,无论是否是第一次来访,服务器都会把它当做第一次来对待(也就是说用户发出页面请求,web服务器只是在简单的进行响应后就关闭与该用户的链接)。
因此解决这种问题的时候会有两种主要的解决方法:
1.客户端的cookie(基于http协议,只能存字符串类型)
2.服务器端的session和applicantion
一.所谓cookie,是储存在用户本地终端上的数据 (但是由于在本地,其安全性是不太好的,有限制长度,也有存在时间)
适用语法:(1)导入包:import=”javax.servlet.http.Cookie”
(2) 创建Cookie :Cookie newCookie=newCookie(“parameter”,”value”);
(3) 写入Cookie : response.addCookie(newCookie);
常见方法:void setMaxAge(int expiry) //获取cookie的有效时间
Void setValue(String value)
String getName()
String getValue()
String getMaxAge() //获取cookie的有效时间
二.Session:会话,客户端与服务器端之间的多次请求与响应的过程,一个session只针对一个客户端。
Session销毁的时机:
1.关闭浏览器的一段时间;
2.Session.invalidate();不依赖的
session.removeAttribute();立刻关闭
3.服务器关闭
常用方法:
getId() :返回唯一的标识,这些标识为每个session而产生。
getAttribute 取一个session中某的信息。(在jsp1.0中为 getValue)
setAttribute 提供一个关键词和一个值。替换掉以前的值。(在jsp1.0中为putValue)
三.Application:
Application用于保存所有用户的公共的数据信息,如果使用Application对象。其存储的信息量任意大小,保存周期是整个应用程序的生命期。应用的范围嘞所有用户。
取值用法:
Set<String> onlineuser = (Set<String>) application.getAttribute("onlineuser");
不够完全,只是把自己的学到的知道的写出来了。
不过,这些概念确实太过枯燥,用代码演示一下。(下一篇的web项目,防登陆传参用代码具体说下这些的具体用法。)