会话技术
- 存储客户端的状态
- 会话技术,记录会话客户端的状态与数据
Cookie:数据存储在客户端本地的。减少服务器压力。安全性不会
Session:将数据存储到服务端,安全性能好,增加服务器压力
服务器端向客户端发送一个Cookie
1. 创建Cookie:
Cookie cookie = new Cookie(name,value);
cookie中不能存储中文
- 设置持久化时间
如果不设置持久化时间,cookie会存储在浏览器内存中,浏览器关闭cookie信息销毁,如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里
cookie.setMaxAge(时间)
3.向客户端发送cookie;
response.addCookie(cookie)
cookie代码
//1.创建对象
Cookie cookie = new Cookie("name","zhangsan");
//设置持久化时间
cookie.setMaxAge(60*10000);
//设置cookie的鞋带路径
cookie.setPath("/SendCookiesServlet");
//删除Cookie信息。将Path路径设置与要删除的cookie的路径一直
//将持久化时间设为0即可
//2.发送至服务端 响应头的形式
response.addCookie(cookie);
显示用户的上次访问时间分析
//获得当前时间
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currenTime =format.format(date);
//1.创建Cookie 记录当前的最新的访问时间
Cookie cookie = new Cookie("lastAccessTime",currenTime);
cookie.setMaxAge(60*10*500);
response.addCookie(cookie);
//第二次访问获得,客户携带的cookie
String lastAccessTime=null;
Cookie[] cookies =request.getCookies();
if (cookies!=null){
for (Cookie coo:cookies){
if ("lastAccessTime".equals(coo.getName())){
lastAccessTime = coo.getValue();
}
}
}
if (lastAccessTime==null){
response.getWriter().write("第一次访问欢迎");
}else {
response.getWriter().write("您的上次登录时间"+lastAccessTime);
}
Session
session技术是将数据存储在服务器端的技术,会为每一个客户端都创建一块内存空间存储客户的数据。但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间。所以说Session的实现基于Cookie。
session技术是基于cookie ----cookie技术
存储session编号 -SESsIONID
1.怎样获得属于本客户端的Session对象(内存区域)?
HttpSession session = request.getSession();
实质就是根据JSESSIONID判断该客户端是否已经存在session
2.怎样向Session中存取数据(Session 也是一个域对象)
session.setAttribute
session.getAttribute
session.removeAttribute
3.session对象的生命周期
创建:第一次执行request,getSession()时创建
销毁:
- 服务器关闭时
- session 过期、失效 默认30分钟
时间的起算点,
从不操作服务器端的资源开始计时
可以在工程web.xml中进行配置
<session-config>
<session-timeout>30</session-timeout>
</session-config>
手动销毁
session.invalidate();
作用范围:
默认在一次会话中。一次会话中任何资源公用一个session对象
浏览器关闭,session就销毁了吗?
不对。
//获取session对象的编号id
String id = session.getId();
//手动创建一个存储JSESSIONID的cookie 设置cookie设置持久化时间
Cookie cookie = new Cookie("JSESSIONID",id);
cookie.setMaxAge(60*60);
会话技术
Cookie技术:存到客户端
Session技术:存到服务器端。借助cookie存储JSESSIONID
网友评论