JavaWeb基础: 会话技术简介
会话技术
用户使用Web应用的过程实际是调用了一系列的Servlet来组合处理请求,从而完成整个业务流。不同Servlet组合起来为用户服务的时候就会遇到一个数据共享和传输的问题,如何让多个Servlets能识别用户?能否用request或者是context来保存attributes从而传递属性?
- 用request.getRequestDispacther(url).forward(request,response), 要求servlets业务流连续不能断裂,即用户一购物就立即结账
- 用context 保存attributes会有线程问题,多个用户使用同一个servlet处理请求会造成数据问题

为了解决不同Servlet数据共享的问题产生了会话技术,JavaWeb有两种会话技术:cookie和session,这两种技术的核心区别是cookie把客户信息存储在客户浏览器上,session把客户信息存粗在服务器上:
- Cookie,WebServer将生成的客户数据存储在浏览器端,浏览器在发送请求时将cookie信息加入http header发送给Server,Server根据不同的cookie进行不同的处理。
- Session,WebServer为每个客户的浏览器建立一个独享的session对象存储客户数据,并且将sessionid回送给客户端浏览器,客户在发起请求时带着session,Server根据sessionid进行不同的处理。
- 淘宝和博客园用的都是cookie,cookie把数据都存在浏览器端,对服务器磁盘的压力小,但是每次请求要携带大量的数据,对网络带宽的要求高。
Cookie交互流程

程序实现技术点
- Browser最多存30个Cookie,每次浏览记录应该更新Cookie,而不是新增Cookie
- 浏览历史应该存最近浏览的Cookie
首页Servlet
- 显示商品列表
- 显示浏览历史
查看详情Servlet
- 显示商品详情
- 更新Cookie并且回写Cookie信息给浏览器
JavaWeb基础: 会话技术简介的更多相关文章
- javaweb学习——会话技术(一)
会话: 1.什么是会话:从打开一个浏览器,访问页面,到最终关闭浏览器的一个过程,就是一次会话. 2.会话的特点:包含多个请求,一次完整的会话是只针对一个用户. 3.会话机制:web中常用的技术,用来跟 ...
- JavaWeb基础—会话管理之Cookie
一.什么是会话 打开浏览器,浏览各种资源,点击各种超链接,直至关闭浏览器,整个过程称为会话 二.会话管理的两种技术 1.Cookie 基于客户端.在客户端记录信息来确认用户身份.以cookie的形式写 ...
- JavaWeb基础 - 会话
会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话. 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生 ...
- javaweb学习——会话技术(二)
文中部分借鉴了:https://www.cnblogs.com/xdp-gacl/p/3855702.html https://blog.csdn.net/p744174529/article/det ...
- JavaWeb基础—会话管理之Session
一.什么是session session类似于客户端在服务器端的账户.使用Map存放 一个会话锁定一个用户(一般情况下是一个客户端,即一个浏览器独占一个session对象),即使使用浏览器访问其他程序 ...
- [JavaWeb基础] 028.CSS简介和基础语法
css 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现 ...
- JAVA基础之会话技术-Cookie及Session
至此,学习Servlet三个域对象:ServletContext(web项目).request(一次请求).Session(一个客户端)!均有相同的方法! 从用户开始打开浏览器进行操作,便开始了一次会 ...
- Java实战之04JavaWeb-03会话技术
一.会话技术简介 1.什么是会话,为什么需要会话技术? 会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话.http协议是状态的. 2.会话技术的分类 客户端存储技术:Coo ...
- Cookie&Session会话技术
一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客 ...
随机推荐
- jquery之 on()方法
原文地址:http://www.365mini.com/page/jquery-on.htm on()函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需 ...
- 使用ansible批量管理远程服务器
使用ansible批量管理远程服务器 背景 本地需要管理远程的一批服务器,主要执行以下任务: 1) 将本地的文件复制到远端所有服务器: 2) 需要在远程服务器中执行一个个命令: 远端服务器路径并非完全 ...
- 【FFT-快速傅立叶变换】
HDU-1402 A * B Problem Plus 题意:给定两个整数,整数的长度最多能达到50000位,输出两个整数的乘积. 分析:题意非常的明了,一个惊世骇俗的想法是使用两个数组将整数保留起来 ...
- javascript学习-原生javascript的小特效(简单的运动效果)
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 一:运动特效(主要是通过改变元素的left,right,height,width,opacity来达到运动的效果) 我们今天做一个 ...
- web设计经验<七>13步打造优雅的WEB字体
今天,大多数浏览器已经默认支持Web字体,日趋增多的字体特性被嵌入最新版HTML和CSS标准中,Web字体即将迎来一个趋于复杂的崭新时代.下面是一些基本的关于字体的规则,特别适用于Web字体. 原文地 ...
- css3动画导航实现
代码 <!DOCTYPE html> <!-- saved from url=(0223)file:///C:/Users/user/AppData/Local/Temp/HZ$D. ...
- Myeclipse优化篇
1 . window-preferences-MyEclipse Enterprise Workbench-Maven4MyEclipse-Maven ,将 Maven JDK 改为电脑上安装的 JD ...
- web前端学习(一) html+js实现文本框背景及只读属性修改
因为工作需求接触了html+javascript,对于从事嵌入式开发,一直接触c和汇编的我,感觉这种语言是一个的全新的领域,宽松的语法要求,等同于文本逻辑的输出,当然我并不认为它简单,错误检查的缺少让 ...
- CodeForces 429 B Working out(递推dp)
题目连接:B. Working out 我想了很久都没有想到怎么递推,看了题解后试着自己写,结果第二组数据就 wa 了,后来才知道自己没有判选择的两条路径是否只是一个交点. 大概思路是:先预处理出每个 ...
- jQuery DOM
请尊重知识,请尊重原创 更多资料参考请见 http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1 jQuer ...