cookie and sesssion
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。Cookie存储于客户端的内存中,因此不够安全。可以通过设置持久化时间在会话结束后仍然使其存在于浏览器的磁盘文件中,方法:setMaxAge(秒数)。
Session存储与服务器中,安全但是会增加服务器压力。
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客 户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务 器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

Cookie的创建Cookie cookie = new Cookie(String cookieName,String cookieValue);
cookie的生命周期是一次会话,如果不设置cookie的路径,则其默认为每次访问产生该cookie的web路径时均会携带该cookie
服务器端向客户端发送cookie的方法response.addCookie(cookie的对象);
如果想要删除客户端的已经存储的cookie信息,那么需要使用用同名同路径的持久化时间为0的cookie进行覆盖。
服务器端获取客户端携带的cookie的方法:通过request.getCookies(),获取一个cookie数组,然后遍历cookie,通过getName方法获得cookie的名字,通过条件判断获得该cookie值。
获取Session对象的方法;
HttpSession session = request.getSession();
在一次会话中,如果客户端在访问服务器的时候,服务器创建了session,这时候服务器会把Jsessionid传给客户端,这样如果该客户端再次访问服务器的时候,服务器使用该方法只会获得曾经创建过的session(实质就是根据JSESSIONID判断该客户端是否在服务器上已经存在 session了)
通过getId()获得Jsessionid。
Session的生命周期为在第一次执行request.getSession()时创建,在服务器关闭时结束或者是在浏览器不再访问该web工程资源的30分钟后销毁。可以在工程的web.xml的<session-timeout>30</session-timeout>中进行修改。也可以手动销毁,方法:.invalidate();
默认在一次会话中,也就是说在,一次会话中任何资源公用一个session对象。可以借助cookie存储JSESSIONID来使得客户端多次会话中访问服务器都获得相同的内容。
方法:创造一个cookie,它的name为“JESSIONID”,value值为request.getSession().getId()获得的值,设置cookie的setMaxAge(),这样使得存入该Session域中的键值在该cookie生命周期内都能被访问到。.
cookie and sesssion的更多相关文章
- cookie和sesssion
一.cookie cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别. cookie存放在客户端浏览器中,session保存在服务器上.它们之间的联系是sessio ...
- JS之表单提交时编码类型enctype详解
简介 form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x- ...
- 2016-1-30 Servlet中Session管理(Sesssion追踪)
Session管理(Sesssion追踪)是Web应用程序开发中非常重要的一个主题.这是因为HTTP是无状态的,在默认情况下,Web服务器不知道一个HTTP请求是来自初次用户,还是来自之前已经访问过的 ...
- servlet读取cookie问题
String sessionid = request.getSession().getId(); // 取得当前的session id ckSessionid = new Cookie("s ...
- js中的cookie
cookie就是一个存放数据的东西,存储量很小4kb,存放在客户端上和应用设备上. 应用场景 用户注册,用户登录,购物车. Chrome浏览器在计算机中存放cookie的位置 C:\Users\Adm ...
- Session和Cookie,以及用户登录验证问题。
参考 :https://blog.csdn.net/u010002184/article/details/79416199 https://www.bbsmax.com/A/RnJW72YJqY/ 首 ...
- 【Python】Flask系列-cookie和session笔记
cookie: 1.cookie出现的原因:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...
- PHP处理会话函数session和cookie总结
本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.sess ...
- JAVA企业级开发-session,cookie(13)
一. jsp jsp: java server pager .java动态生成网页的一门技术 使用servlet生成网页时候遇到的问题,为什么使用jsp? 在servlet里面书写htm ...
随机推荐
- System.Web.WebPages.Html.HtmlHelper”不包含XXXX
1.关闭Visual Studio中 2.删除bin和OBJ文件夹 3.重新打开您的解决方案
- C++开发者都应该使用的10个C++11特性 转
http://blog.jobbole.com/44015/// | 分类: C/C++, 开发 | 条评论 | 标签: C++, C语言 分享到: 本文由 伯乐在线 - 治不好你我就不是兽医 翻译自 ...
- Android 音视频深入 十四 FFmpeg与OpenSL ES 播放mp3音乐,能暂停(附源码下载)
项目地址https://github.com/979451341/FFmpegOpenslES 这次说的是FFmpeg解码mp3,数据给OpenSL ES播放,并且能够暂停. 1.创建引擎 slCre ...
- 使用matlab生成用于ROM初始化的coe文件(转)
reference:https://www.cnblogs.com/chensimin1990/p/9759368.html t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; ...
- 初见《构建之法》orz……
作为一个大二的计科狗,还是对软件设计有些懵,尽管之前学习过软件工程,但并没有掌握,突如其来的软件设计实践,让我着实傻眼. 通过消息得知,要学习<构建之法>,就去搜了一下,它是以实践为基础的 ...
- servlet邮箱激活验证实例含代码
也有很多人本来有机会的,他们都拒绝了,不想让自己太累,太麻烦.或者中途被情绪所左右,半途而废了. 成长是有代价的,同样悠闲也是有代价的. 流程: 用户填写相关信息,点击注册按钮 系统先将用户记录保存到 ...
- 剑指Offer 6. 旋转数组的最小数字 (数组)
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- eval函数解析json数据时加上圆括号的原因
var temp = eval("(" + data + ")"); //解析json数据 json是以”{}”的方式来开始以及结束的,在JS中,“{}”会被当 ...
- 写了一个Java的简单缓存模型
缓存操作接口 /** * 缓存操作接口 * * @author xiudong * * @param <T> */ public interface Cache<T> { /* ...
- SQL注入之Sqli-labs系列第三十六关(基于宽字符逃逸GET注入)和三十七关(基于宽字节逃逸的POST注入)
0X1 查看源码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string ...