1.Cookie
CooKie是Web服务器保存在客户端的一系列文本信息
Cookie不是内置对象;Cookie保存的都是文本信息;Cookie是在客户端发挥作用
Cookie的作用:对特定对象的追踪;统计网页浏览次数;简化登录
安全性能:容易信息泄露
Cookie有效期:默认的是当你关闭浏览器后,Cookie就会清空,可以通过setMaxAge来设置Cookie的有效期。
<%
//Cookie不是内置对象
//Cookie保存的都是文本信息
//Cookie是在客户端发挥作用
//创建一个Cookie对象
Cookie cookie=new Cookie("uname","");
cookie.setValue("xiaozhang");
//保存到cookie当中
response.addCookie(cookie);
//获取cookie
String uname=null;
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(int i=0;i
if("uname".equals(cookies[i].getName())){
uname=cookies[i].getValue();
}
}
}
%>
Cookie属性常用方法
方法 |
说明 |
void setMaxAge(int expiry) |
设置Cookie的有效期,以秒为单位 |
void setValue(String value) |
在Cookie创建后,对Cookie进行赋值 |
String getName |
获取Cookie的名称 |
String getValue() |
获取Cookie的值 |
String getMaxAge |
获取Cookie的有效时间,以秒为单位 |
将cookie提取出来的内容转换成UTF-8编码模式
URLDecoder.decode(cookies[i].getValue(),"UTF-8")
2.Session
一个会话就是
浏览器与服务器之间的一次通话
,包含浏览器与服务器之间的多次请求、响应过程。
会话机制:session是一种存储机制的对象。 只要浏览器关闭就失效。
session:整个访问一次服务器的机制。有效期最长30分钟左右。
Session是JSP内置对象,与浏览器一一对应。允许用户存储和提取会话状态的信息。
session:存储一次会话范围内的所有数据,除非关闭浏览器(或超过有效期最长时间),会话才会结束。
JSP内置对象Session
Session对象用来存储有关用户会话的所有信息。
Session对象常用方法:
方法 |
说明 |
void setAttribute(String key,Object value) |
以key/value的形式保存对象值 |
Object getAttribute(String key) |
通过key获取对象值 |
int getMaxInactiveInterval() |
获取session的有效非活动时间,以秒为单位 |
void setMaxInactiveInterval(int second) |
设置session的有效非活动时间,以秒为单位 |
String getId() |
获取session对象的编号 |
void Invalidate() |
设置session对象失效 |
//定义session
HttpSession session=request.getSession();
session.setAttribute("admin", uname);
//设置session的有效时间
session.setMaxInactiveInterval(30);
session和窗口的关系
一个session对应一个窗口,那么通过超链接打开的窗口是否也是新的session呢?
每个session对象都与浏览器一一对应,重新开启一个浏览器,相当于重新创建一个session对象并重新开启一个IE窗口,直接访问系统首页面
通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
3.Cookie和session的比较
1.session是在服务器保存用户信息,Cookie是在客户端保存用户信息
2.session中保存的是对象,Cookie保存的是字符串
3.session随会话结束而关闭,Cookie可以长期保存在客户端
4.Cookie通常用于保存不重要的用户信息,重要的信息用session保存
5.session是内置对象,而Cookie不是内置对象