一、什么是session
session在网络中被称为会话。
由于HTTP协议(超文本传输协议)是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。
为了弥补这一缺点,HTTP协议提供了session
通过session可以在应用程序的WEB页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。
但是,如果在一个会话中,客户端长时间不向服务端发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。
实际上,一次会话的过程也可以理解为一个打电话的过程。通话从拿起电话或手机拨号开始,一直到挂断电话结束,在这个过程中,可以与对方聊很多话题,甚至重复的话题。一个会话也是这样,可以重复访问相同的Web页。。
1.setAttribute(String key,Object value) 以key/value的形式保存对象值
//记录用户的登录信息=保存用户的登录信息
session.setAttribute("uname", name);//键String,值object
2.getAttribute(String key) 通过key获取对象值
session.getAttribute("uname")
3.get/setMaxInactiveInterval() 获取/设置session的有效非活动时间,以秒为单位
//设置session的最大有效非活动时间 以秒为单位
session.setMaxInactiveInterval(10);
//获取session的最大有效非活动时间 以秒为单位
int s = session.getMaxInactiveInterval();
4.getId() 获取session对象的编号
session.getId()
5.invalidate() 设置session对象失效
session.invalidate();
session的应用场合 (服务端)
1、保存用户登录状态 用于判断用户是否登录
2、后期建议直接保存USer对象
3、购物车项目 将整个购物车保存到session中 list<Goods>
二、Cookie
在互联网中,Cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
通过cookie的getCookie()方法即可获取到所有cookie对象的集合;
通过cookie对象的getName()方法可以获取到指定名称的cookie;
通过getValue()方法即可获取到cookie对象的值。
另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。
Cookie的常用方法:
1.setMaxAge(int expiry) 设置Cookie的有效期,以秒为单位
Cookie c=new Cookie("sname",name);
c.setMaxAge(60*60*24*7);
2.getsetMaxAge()获取Cookie的有效时间,以秒为单位
Cookie c=new Cookie("sname",name);
String time=c.getMaxAge();
3.setValue(String value) 在Cookie创建后,对Cookie进行赋值
Cookie c=new Cookie("sname",name);
c.setValue("name");
4.getValue(String value) 在Cookie创建后,拿到Cookie的值
Cookie c=new Cookie("sname",name);
String value=c.getValue();
5.getName() 获取Cookie的名称
Cookie c=new Cookie("sname",name);
String name=c.getName();