java 浅谈web系统当中的cookie和session会话机制
一 Cookie:
1. Cookie翻译为小甜饼,有一种特殊的味道。cookie主要用来在(浏览器)客户端做记号用的。Cookie不属于java,Cookie是一种通用的机制,属于HTTP协议的一部分,也就是说PHP开发都会涉及到Cookie.
2. Cookie在web开发中的作用是什么呢?存储在什么地方,使用Cookie实现的经典案例有哪些?
* web开发中的作用是:将回话的状态保存在浏览器客户端上。(原因:HTTP协议是无状态无连接的,必须有一种机制来保持会话的正常进行)
* Cookie最终都是存储在浏览器客户端上的。
* Cookie的经典案例:
购物车
十天内免登陆
3. Java Servlet中对Cookie是怎样支持的?
在Servlet规范当中,提供了一个类javax.servlet.http.Cookie. Cookie中的name和value都是String类型。
4,.Cookie所需掌握的基本内容。
如何在后台服务器端创建出Cookie,然后发送给浏览器客户端。
Cookie cookie=new Cookie("name","valiue");
response.addCookie(cookie);
浏览器发送Cookie给服务器后,服务器如何获取Cookie呢?
Cookie[ ] cookies=request.getCookies();
if(cookie!=null){
for(Cookie cookie:cookies){
cookie.getName();
cookie.getValue();
}
}
服务器端还可以设置保存Cookie的路径,默认绑定当前路径。设置Cookie在浏览器端的有限期,默认保存在浏览器内存中。具体方法详见源码。
session:
在web系统中,有一种机制,叫做会话。英语单词为session。session对象主要是将会话状态保留在服务器端。而cookie是将会话状态保留在浏览器端。
会话:例如我们打开某购物网站,则表示开启了一次会话,我们可能会发送多次请求,但都属于同一个会话,session同样是B/S架构的一部分,同样属于HTTP协议的一部分。java对于session的支持。java的servlet规范给定了一个接口 javax,servlet.http.HttpSession 该接口创建的对象就是session。一个session对象的创建到销毁是一次完整的会话。一个会话包含多次请求。 request<session<application
session机制实现原理:
当用户打开浏览器第一次访问web站点时,服务器端就会创建一个新的session对象,同时给该session对象分配一个sessionId ,sessionId和session对象会绑定带session列表中,服务器端会将sessionId以cookie的形式发送给浏览器客户端。
只要浏览器不关闭,sessionId这个cookie就会一直存在,下一次浏览器客户端发起请求会携带着sessionId给服务器,服务器会拿着sessionId到session列表查找对应sessionId的session对象。
本质上session机制的实现完全依赖于sesionId
session机制当中有一个超时机制。浏览器和服务器之间的协议时HTTP协议,属于无连接无状态的,浏览器关闭这个动作,服务器是完全无法感知的,所以服务器只有依赖于超时机制去销毁ssession对象那个。CATALINA_HOME/conf/web.xml可以配置超时时间。默认为30分钟.
浏览器不关闭也可能会话结束, session超时
浏览器关闭会话可能没结束。 服务器端session没有销毁
假设浏览器禁用Cookie,如何拿到session呢?
第一种:提示用户开启cookie
第二种;URL重写。(不推荐,效率低)
session机制的经典案例:
用户登陆成功,session中存储用户信息,用于以后判断用户是否登陆。未登录跳转到登陆页面。
电商平台: 购物车信息存储到session中,session超时钝化到数据库当中,下次用户登陆再次结账。
request.getSession();可传参数 true 获取不到则新建 false获取不到返回null,不新建。
HttpSession接口方法
getAttribute(String key);//从session获取数据
setAttribute(String name,String value); //向session存储数据
removeAttribute(String name)//移除指定数据
invalidate() //销毁session对象

初次感悟,若有不足,欢迎补充。
java 浅谈web系统当中的cookie和session会话机制的更多相关文章
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
- [原创]浅谈Web UI自动化测试
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service ...
- 从电商秒杀与抢购谈Web系统大规模并发
从电商秒杀与抢购谈Web系统大规模并发 http://www.iamlintao.com/4242.html 一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程 ...
- 浅谈|WEB 服务器 -- Caddy
浅谈|WEB 服务器 -- Caddy 2018年03月28日 12:38:00 yori_chen 阅读数:1490 标签: caddyserverwebhttps反向代理 更多 个人分类: ser ...
- [原创] 浅谈ETL系统架构如何测试?
[原创] 浅谈ETL系统架构如何测试? 来新公司已入职3个月时间,由于公司所处于互联网基金行业,基金天然固有特点,基金业务复杂,基金数据信息众多,基金经理众多等,所以大家可想一下,基民要想赚钱真不容易 ...
- Cookie与Session会话技术
Cookie与Session会话技术 一.什么是会话 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选项卡,弹出页面都属于这个会话,且共享同一个session. 二 ...
- web框架--tornado之cookie与session初识
cookie的本质其实就是在浏览器端保存的键值对, 每当浏览器端发送一次请求, 都会将这些键值对附加在请求中并发送给服务器端. 一.目录结构 二.main_pro.py #!/usr/bin/env ...
随机推荐
- Sentinel统计线程,QPS,RT的方式
一.Sentinel是阿里开源产品,用于流量监控和管理. 二.对于流量控制,可以通过限制线程数和QPS实现限流 1. 资源进入Sentinel的方式 Entry entry = null; try { ...
- cdnbest站点里设置防盗链
设置需求只允许 test.kangleweb.com 访问 ,其他网站链接全部拒绝 (注:如果test.kangleweb.com是用https访问,那引用的内容地址www447.yivpn.cn也 ...
- maven 项目打包到本地仓库并且推送到私服仓库
首先进入到项目文件夹下,然后进入cmd命令窗口,第一步先clean一下,输入命令 mvn clean. 第二步打包到本地,输入命令mvn clean package -Dmaven.test.skip ...
- vue获取后台图片验证码,并点击刷新验证码
<--url为需要访问的接口地址--> <span style="display: inline-block;width: 130px;height: 53px;borde ...
- 在WIN10上安装ESXI-Comstomer (转自技术社区)
I recently required the use of ESXi Customizer to integrate some NIC drivers into my ESXi 5.5 ISO. H ...
- NPOI 导入为table 处理excel 格式问题
ICell cell = row.GetCell(j); if (!cell.isDbNullOrNull()) { switch (cell.CellType) { case CellType.Bl ...
- 学习Hibernate的体会
这个学期老师让我们做一个系统(服务器和客户端),语言自选,我也随大家开始学习java web 和android . 下面是我自学的一些体会和遇到的问题. 关于jar包. jsds.jar javasi ...
- 2019年Python数据挖掘就业前景前瞻
Python语言的崛起让大家对web.爬虫.数据分析.数据挖掘等十分感兴趣.数据挖掘就业前景怎么样?关于这个问题的回答,大家首先要知道什么是数据挖掘.所谓数据挖掘就是指从数据库的大量数据中揭示出隐含的 ...
- 将VSCode设置成中文语言环境
VSCode是一款轻量级的好用的编译软件,今天小编来将软件默认的英文语言环境变为我们熟悉的中文语言环境. 工具/原料 电脑一台 安装有VSCode 方法/步骤 首先打开VSCode软件,可 ...
- 第二阶段第二次spring会议
昨天我对39个组发表了建议以及总结了改进意见和改进方案. 今天我对便签加上了清空回收站功能 private void 清空回收站ToolStripMenuItem_Click(object sende ...