会话技术

用户使用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基础: 会话技术简介的更多相关文章

  1. javaweb学习——会话技术(一)

    会话: 1.什么是会话:从打开一个浏览器,访问页面,到最终关闭浏览器的一个过程,就是一次会话. 2.会话的特点:包含多个请求,一次完整的会话是只针对一个用户. 3.会话机制:web中常用的技术,用来跟 ...

  2. JavaWeb基础—会话管理之Cookie

    一.什么是会话 打开浏览器,浏览各种资源,点击各种超链接,直至关闭浏览器,整个过程称为会话 二.会话管理的两种技术 1.Cookie 基于客户端.在客户端记录信息来确认用户身份.以cookie的形式写 ...

  3. JavaWeb基础 - 会话

    会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话. 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生 ...

  4. javaweb学习——会话技术(二)

    文中部分借鉴了:https://www.cnblogs.com/xdp-gacl/p/3855702.html https://blog.csdn.net/p744174529/article/det ...

  5. JavaWeb基础—会话管理之Session

    一.什么是session session类似于客户端在服务器端的账户.使用Map存放 一个会话锁定一个用户(一般情况下是一个客户端,即一个浏览器独占一个session对象),即使使用浏览器访问其他程序 ...

  6. [JavaWeb基础] 028.CSS简介和基础语法

    css 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现 ...

  7. JAVA基础之会话技术-Cookie及Session

    至此,学习Servlet三个域对象:ServletContext(web项目).request(一次请求).Session(一个客户端)!均有相同的方法! 从用户开始打开浏览器进行操作,便开始了一次会 ...

  8. Java实战之04JavaWeb-03会话技术

    一.会话技术简介 1.什么是会话,为什么需要会话技术? 会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话.http协议是状态的. 2.会话技术的分类 客户端存储技术:Coo ...

  9. Cookie&Session会话技术

    一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客 ...

随机推荐

  1. Cheatsheet: 2014 01.15 ~ 01.30

    Web How to upload file in Node.js Create Echo Server in Node.js Near-Realtime Analytics with MongoDB ...

  2. Create Stacked Canvas to Scroll Horizontal Tabular Data Blocks In Oracle Forms

    In this tutorial you will learn to create horizontal scrollable tabular or detail data block by usin ...

  3. HDU 5810 Balls and Boxes(盒子与球)

     Balls and Boxes(盒子与球) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  4. So easy Webservice 1.Socket建设web服务

    socket 是用来进行网络通讯的,简单来说,远程机器和本地机器各建一个socket,然后通过该socket进行连接通讯 socket简单模型图: socket的原理图: 代码实现: 1.创建sock ...

  5. 作用域内优先级及this指针

    函数声明>变量声明 作用域:顶部----------------------> 函数声明会覆盖变量声明,但不会覆盖变量赋值 this指针不是变量.当调用括号的左边不是引用类型而是其它类型, ...

  6. 数据库mysql中distinct关键词

    在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 例如,在学生信息表中,你想查询该学校有多少个系.例如, ...

  7. JSP学习——语法

    JSP模版元素 JSP表达式 JSP脚本片断 JSP注释JSP指令JSP标签 JSP内置对象如何查找JSP页面中的错误 1:JSP模版元素 : JSP页面中的HTML内容称之为JSP模版元素. JSP ...

  8. 团队作业Week5之团队贡献分的分配

    一.团队贡献分的分配规则 首先,我们团队共有5个人,平均每个人50分,所以我们团队的总分为5*50=250,我们先把50分分成以下几份: 序号 贡献类型 权重 分数 1 代码贡献 40% 20 * 5 ...

  9. QQServer_update

    import java.awt.*; import javax.swing.*; import java.net.*; import java.io.*; import java.awt.event. ...

  10. Visual Studio 2012 RC 中RC表示什么意思

    来自:http://zhidao.baidu.com/question/507233956.html Release Candidate 缩写为 RC ,经常用于计算机软件方面,表示软件的候选发布版. ...