java跟踪会话_JavaWeb会话跟踪
cookie和session是常用的会话跟踪技术
cookie机制
1、web应用程序是使用HTTP协议传输数据的,HTTP协议是无状态的协议,一旦数据交换完毕就会关闭链接。Cookie可以弥补HTTP协议无状态的不足。
位于:javax.servlet.http.Cookie
2、Cookie具有不可跨域名性。Cookie的管理是浏览器,浏览器判断一个网站是否能操作另一个网站的Cookie的依据是域名。例:p_w_picpaths.baidu.com与www.baidu.com不是同一个域名,cookie不能相互操作。但可以对此类cookie做特殊处理,让其相互访问。
3、Unicode编码:保存中文
中文属于Unicode字符,在内存中占4个字符,而英文属于ASCII字符,内存中只占2个字节。Cookie中使用Unicode字符时需要URLEncode编码,否则乱码。一般采用UTF-8即可,GBK不推荐使用,因为浏览器不一定支持,而javascript也不支持GBK。
4、BASE64编码:保存二进制图片
Cookie可以使用二进制数据。例如在Cookie中使用数字证书,提供安全度。使用二进制数据时需要编码BASE64。
BASE64:sun.misc.BASE64Encode;sun.misc.BASE64Decoder;
byte[] binary = new byte[1024];
String content = BASE64Encode.class.newInstance().encode(binary);
5、Cookie的属性
6、Cookie的有效期
cookie.setMaxAge(秒)
负数:为临时性Cookie,不会被持久化,不会写到cookie文件中,cookie信息保存在浏览器内存中,关闭浏览器cookie就会消失,cookie的默认值为-1。
0:为零表示删除该cookie,会从浏览器内存中删除。
maxAge属性只是被浏览器判断是否过期的,不会提交到服务端。
修改:新建一个同名的cookie,覆盖原来的cookie。
删除:新建同名的cookie,并将maxAge为零,进行覆盖。
7、永久登录
方案:在登录时查询一次数据库,以后访问验证登录信息时不再查询数据库。实现方式是把账号按照一定的规则加密后,连同账号一块保存到cookie中。下次访问时只需要判断账号的加密规则是否正确即可。如:把账号连同密匙用MD5算法加密后保存到cookie中,验证时,验证cookie中的账号与密匙是否与cookie中的一样。
session机制
session对应类javax.servlet.http.HttpSession类
session的使用比cookie方便,但过多的session存储在服务器内存中,会对服务器造成压力。
session的生命周期:
session在用户第一次访问服务器的时候自动创建,需要注意只有访问JSP,Servlet等程序时才会创建session,访问html等静态资源并不会创建session。如果未生成session,可以使用request.getSession(true)强制生成。session生成后,只要用户继续访问,服务器就会更新session的最后时间,并维护session。用户每访问服务器一次,无论是否读写session,服务器都认为该用户的session活跃了一次。
session的有效期:
越来越多的用户访问,session也会越多,为防止内存溢出,服务器会把长时间内没有活跃的session从内存中删除。超时时间属性为maxInactiveInterval,可设置超时时间。
tomcat的默认超时时间是20分钟。
web.xml也可以设置超时时间
60
session对浏览器的要求:
http协议是无状态的,不能依据http连接来判断是否同一客户,因此服务器向客户发送一个名为JSESSIONID的cookie,它的值为session的id,session依据该cookie来识别是否为同一用户。该cookie为服务器自动生成,他的maxAge属性为-1,表示仅当前浏览器内有效。
如果客户端浏览器将cookie功能禁止,或者不支持cookie,例如大多数手机浏览器都不支持cookie,Javaweb提供另一种方案:URL地址重写。
URL地址重写:
原理是将该用户session的id信息重新写到URL地址中。
java跟踪会话_JavaWeb会话跟踪相关推荐
- 基于JAVA社区老人健康服务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA社区老人健康服务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA社区老人健康服务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B ...
- java计算机毕业设计教学互动跟踪系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计教学互动跟踪系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计教学互动跟踪系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- java计算机毕业设计在线学习跟踪系统后台源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计在线学习跟踪系统后台源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计在线学习跟踪系统后台源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构 ...
- 会话及会话技术、Cookie对象、Session对象 详解
会话及会话技术 当用户通过浏览器访问Web应用时,通常情况下,服务器需要对用户的状态进行跟踪.例如,用户在网站结算商品时,Web服务器必须根据 请求用户的身份,找到该用户所购买的商品.在Web开发中, ...
- 第5章 会话及其会话技术
目录 5.1 会话概述 5.2 Cookie对象 5.2.1 什么是Cookie 5.2.2 Cookie API [任务5-1]显示用户上次访问时间 5.3 Session 对象 5.3.1 什么是 ...
- 动态网站开发讲课笔记05:会话及会话技术
文章目录 零.本节学习目标 一.会话概述 (一)会话的概念 (二)全局数据共享 二.Cookie对象 (一)什么是Cookie 1.Cookie的概念 2.如何设置Cookie 2.Cookie操作示 ...
- oracle 数据跟踪软件,oracle数据库跟踪工具
有没有一个能跟踪oracle数据库中执行SQL代码的跟踪工具? 通过Oracle企业管理器建立跟踪从Top Consumers页面(可以通过Additional Monitoring Links区域中 ...
- 转:WF中的跟踪服务(1):Sql跟踪数据库表,视图,存储过程等相关说明
使用WF 中的SqlTrackingService 跟踪服务,我们可以记录有关工作流及其关联活动的跟踪信息到Sql Server数据库库中.SqlTrackingQuery 类提供对包含在跟踪数据库中 ...
- linux 内核连接跟踪,Linux内核连接跟踪锁的优化分析(1)
Linux内核连接跟踪锁的优化分析(1) 作者:gfree.wind@gmail.com 博客:linuxfocus.blog.chinaunix.net 微博:weibo.com/glinuxer ...
最新文章
- sql查询父节点所有子节点id_5招搞定SQL棘手问题,同事看到直呼“内行”
- python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)...
- 安卓v7支持包下的ListView替代品————RecyclerView
- oracle数值类型--LOB+ROWID/UROWID
- java后台接收数据格式_Java后台基于POST获取JSON格式数据
- javax.servlet.servlet
- OAuth 2.0介绍
- 蔡先生论道大数据之八: 让他在看小说的时候, 看到喜欢的汽车
- Flask初级(十)flash与前台交互post详解
- c语言求闰年平年的计算方法,C语言平年闰年问题
- Ubuntu安装docker报错:Command ‘lsb_release‘ not found
- modbus调试工具开发(1)--windows下编译libmodbus库文件
- python请输入一个三位数输出该三位数的逆序数_键盘输入一个三位数,输出逆序后的数...
- 湖南职称计算机模拟试题,湖南职称计算机考试培训软件:集职称计算机考试模拟题、长沙职称计算机考试题库...
- 32款 jQuery UI框架开源软件
- Chrome浏览器如何实现多开操作?(Mac系统为例)
- 不可重复读和幻读有什么区别区别?
- 数据的类型:分类数据、顺序数据、数值型数据
- java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试
- command a expects \ followed by text