JAVA Web 实现会话跟踪的技术笔记
1.HTTP协议无状态:客户端的请求与服务器的响应所发生的一系列行为
简单的说是客户发送了请求,服务器就给客户端响应,
它们彼此之间都没有记录下来。
如:
顾客与自动售货机
普通顾客(非会员)与商场
2.cookie:把用户信息存放在客户端浏览器中,名-值
1)分类:
A.不设置过期时间:cookie存放在内存,浏览器关闭,则cookie消失
B.设置过期时间:cookie存放在硬盘上,浏览器关闭再打开,cookie还在,
直到超过过期时间。浏览器可共享此cookie的数据。
2)操作步骤:
第一:实例化Cookie对象:Cookie ck = new Cookie("名","值") ;
第二:添加Cookie对象:响应对象.addCookie(cookie对象) ;
注:在发送客户端浏览器之前可以,设置存活时间:
cookie对象.setMaxAge(秒) ;
第三:读取Cookie对象的数据
Cookie[] cookie数组对象 = request.getCookies()
for (Cookie ck : cookie数组对象) {
System.out.println(ck.getName()+"->"+ck.getValue());
}
3.HttpSession:HttpSession依赖Cookie,所以说,要是你报cookie禁用了,那么HttpSession就失效,把用户信息存放在服务器中的web容器中
工作原理
3.HttpSession:会话对象
1)获取会话对象
请求对象.getSession(false):
获取会话对象,如果存在会话对象,则返回,如果不存在会话对象,则返回null
请求对象.getSession() 等同于 请求对象.getSession(true)
获取会话对象,如果存在会话对象,则返回,如果不存在会话对象,则创建一个新的会话对象
2)常见方法
setAttribute(“属性名”,”属性值”) 根据属性名设值
getAttribute(“属性名”) 根据属性名 获取对应的值
removeAttribute(“属性名”) 根据属性名删除
getId():获取Session唯一的ID
invalidate():使HttpSession对象失效
setMaxInactiveInterval(时间):设置Session过期时间,单位是秒
getCreationTime():获取HttpSession对象创建时间
getLastAccessedTime():获取HttpSession最近一次请求时间
3)会话失效的方法有:
a.超时
b.手动失效:调用invalidate()方法
c.程序结束(web服务器关闭,切记不是浏览器关闭)
注:浏览器关闭后,Session对象失效了码? -> 答案:没有失效,在服务器仍然存在,
4.地址重写
1)响应对象.encodeRedirectURL("地址")
2)形式(语法)
a.URL地址;jsessionid=4BA4A5C6F5268E1FE3227AEB1A251E97
b.URL地址?参数名1=值1&参数名2=值2&...&参数名n=值n;jsessionid=4BA4A5C6F5268E1FE3227AEB1A251E97
5.表单隐藏域
<form action="" method="">
相关的表单控件...
<input type="hidden" name="参数名1" value="参数值1"/>
...
<input type="hidden" name="jsessionid" value="xxxxx"/>
<input type="hidden" name="参数名n" value="参数值n"/>
</form>
JAVA Web 实现会话跟踪的技术笔记的更多相关文章
- java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用)
java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用) 这是我关于会话技术的第二篇文章,对 Cookie有不了解的兄弟可以点击下方的Cookie跳转 Cookie链 ...
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- Java Web之会话技术
客户端与服务器通信过程中,会产生一些数据.比如,A和B分别登陆了某宝购物网站,A买了一个Android手机,B买了一个iPhone手机,当结账时,web服务器需要分别对用户A和B的信息分别保存.根据J ...
- Java Web(三) 会话机制,Cookie和Session详解
很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...
- Java Web(三) 会话机制,Cookie和Session详解(转载)
https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...
- WEB中会话跟踪
一. 什么叫会话跟踪 记录用户一段时间内的逻辑上相关联的不同访问请求个过程叫“会话跟踪”.通过用户在每次对服务请求时的唯一标识,可以跟踪会话. 二. 会话跟踪产生的原因 我们都知道In ...
- WEB中会话跟踪[转]
今天晚上去华工参加睿智融科的笔试,问到web会话跟踪,一脸懵比,这个词听都没听过,回来后百度下,发现其实会话跟踪的内容我基本都了解的~_~ 转自:http://www.cnblogs.com/gaop ...
- Java Web编程的主要组件技术——JDBC
参考书籍:<J2EE开源编程精要15讲> JDBC(Java DataBase Connectivity)是Java Web应用程序开发的最主要API之一.当向数据库查询数据时,Java应 ...
- 《Java web 开发实战经典》读书笔记
去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...
随机推荐
- SQL Server 2014如何提升非在线的在线操作
在今天的文章里,我想谈下在线索引重建操作( Online Index Rebuild operations),它们在SQL Server 2014里有怎样的提升.我们都知道,自SQL Server 2 ...
- 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法
废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...
- 简单认识C#
C#浅解众所周知c#是微软推出的一款完全没面向对象的编程语言,那么对象是什么?在现实生活中人们一提到对象首先想到的就是“情侣”!但是在我们的程序中对象是什么? 在程序中个能够区别于其他事物的独立个体我 ...
- SQL Server时间粒度系列----第6节基于当前日的小时数和分钟数与mysql unix_timestamp和from_unixtime的mssql实现
本文目录列表: 1.基于当前日的小时数和分钟数2.mysql unix_timestamp和from_unixtime的mssql实现 3.总结语 4.参考清单列表 基于当前日的小时数和分钟数 ...
- ADO.NET基础02
查询和操作数据库 要想从数据库中读取多条记录就必须用到Command对象的ExecuteReader()方法,该方法返回一个DataReader对象,通过其对象的程序就可以访问数据库. 基础知识 ...
- exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常
1-问题描述:通过SVN将代码变更提交服务器时,你可能会遇到以下异常: exception throw in progress runner thread 2-解决办法: SVN代码源代码管理和TF ...
- Mssql中一些常用数据类型的说明和区别
Mssql中一些常用数据类型的说明和区别 1.bigint 占用8个字节的存储空间,取值范围在-2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,37 ...
- jdk源码分析之ArrayList
ArrayList关键属性分析 ArrayList采用Object数组来存储数据 /** * The array buffer into which the elements of the Array ...
- 通用easyui查询页面组件
easyui查询页面组件使用指南 本组件开发需求:信息系统的查询页面基本是包括:搜索区域,列表显示区域,按钮条. 1.录入一个查询语句(如:select * from Strudents),录入列表显 ...
- 基于TCP和多线程实现无线鼠标键盘-Robot
Windows端收到Android端传递来的键盘或鼠标操作信息以后,需要根据这些信息操作鼠标或键盘,这就需要用到java.awt.Robot类,该类用于控制鼠标或键盘. 在Java主窗体中定义: pu ...