九龙坡区建设二校的网站,不是做有网站都叫狠狠,咖啡网页设计代码,网站title字数什么是会话跟踪技术
会话#xff1a;用户打开浏览器#xff0c;访问web服务器的资源#xff0c;会话建立#xff0c;直到有一方断开连接#xff0c;会话结束。在一次会话中可能包含多次请求和响应。
会话跟踪#xff1a;一种维护浏览器状态的方法#xff0c;服务器需…什么是会话跟踪技术
会话用户打开浏览器访问web服务器的资源会话建立直到有一方断开连接会话结束。在一次会话中可能包含多次请求和响应。
会话跟踪一种维护浏览器状态的方法服务器需要识别多次请求是否来自同一个浏览器以便于在多次请求间共享数据。
我们知道http协议是一种无状态的协议。多次请求之间的数据无法共享。每次浏览器向服务器发送请求服务器都会将这个请求看作全新的请求。这是为了传输的效率所考虑的。那么为了解决一次会话中数据无法共享的问题我们需要使用会话跟踪技术。
实现方式
客户端cookie和服务器端session Cookie的基本使用
Cookie客户端会话技术将数据保存到客户端以后每次请求携带cookie数据进行访问。
Cookie原理
Cookie是基于http协议实现的
响应头set-cookie
请求头cookie
Cookie使用细节
Cookie存活时间
默认情况下Cookie存储在浏览器内存中当浏览器关闭内存释放Cookie被销毁。
setMaxAgeint seconds设置Cookie的存活时间。
1、正数将Cookie写入电脑的硬盘中持久化存储到时间自动删除。
2、负数默认值Cookie存储在浏览器内存中 当浏览器被关闭Cookie被销毁。
3、零删除对应的Cookie。
cookie不可以存储中文
想要存储中文我们可以将中文转换成url格式再需要的时候解码回来。
String value小明;
//编码
String temURLEncoder.encode(value,UTF-8);
//解码
URLDecoder.decode(tem,UTF-8);
Session使用细节
服务端会话跟踪技术将数据保存到服务端。
JAVA EE提供HttpSession接口来实现一次会话多次请求间数据共享功能。
使用
1、获取Session对象
HttpSession sessionrequest.getSession();
2、session对象的功能
存储数据到session域中
void setAttribute(String name,Object o);
根据key获取值
Object getAttributeString name);
根据key删除获得键值对
void removeAttribute(String name);
Session原理
Session是基于cookie实现的。
客户访问服务器获取session对象每一个session都有一个唯一的id标识只要你访问了session服务器会自动的将session的id变做一个cookie发送给浏览器。
下一次浏览器访问服务器时服务器监测到cookie包含session的id会去寻找是否有这个id对应的session没有的话会创建对应的session。 Session使用细节
Session钝化和活化
服务器重启后Session中的数据是否还存在
钝化在服务器正常关闭后Tomcat会自动的将Session数据写入硬盘的文件中。
活化再次启动服务器时从文件中加载数据到session中。
Session的销毁
默认情况下三十分钟会自动销毁。
session-configsession-timeout30/session-timeout
/session-config
调用Session对象的invalidate方法可以立即销毁Session。
总结
cookie通常用来登陆验证这些操作而session则时登陆以后的操作。