JavaWeb之Session技术

session

服务器用于缓存数据会话技术

默认情况:session依赖于cookie

对象HttpSession

1.session原理:

根据上图分析如下:

a.浏览器发送请求到服务器,并交给一个servlet进行处理。此时request.getSession()第一次创建session对象,将sessionId以cookie的方式发送给浏览器。同时在服务端会保存session,并且,有唯一的id。

b.服务端将响应的信息发送到客户端,客户端会保存cookie信息。

c.当浏览器再次请求的时候,并交给另一servlet-twoservlet进行处理,此时request.getsession()会首先在服务端找是否有匹配的session,如果匹配,则不创建。

getSession()用于获得session对象,并以cookie方式将session id发送浏览器

如果没有特殊的cookie getSession方法创建session对象

2.session生命周期

创建:第一次使用

销毁:

过期,默认30分钟,%tomcat%/conf/web.xml配置

<session-config>

<session-timeout>30</session-timeout>

</session-config>

执行invalidate() ,进行销毁

setMaxInactiveInterval(int interval) 设置生命周期的时间,单位秒

非正常关闭

操作属性--用于缓存数据

xxxAttribute

3.URL重写

如果浏览器禁用了cookie,通过指定的api给URL后面追加特殊的标记,将session id传递给服务器

http://......./day10/oneServlet;jsessionid=23542958BF73D36C6F4086173606AA9B

encodeURL(url) 重写URL,重写普通的URL【】

encodeRedirectURL(java.lang.String url) ,专门用于处理重定向 URL重写。

如果参数是空字符串,内容不同

用法:见博文中session技术案例session应用案例-注册验证码

JavaWeb之Session技术,布布扣,bubuko.com

时间: 2024-10-21 04:38:36

JavaWeb之Session技术的相关文章

JavaWeb:Servlet技术

JavaWeb:Servlet技术 快速开始 Servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层.使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页. Servlet在Web应用程序中的位置: Servlet的任务 Servlet 执行以下主要任务: 读取客户端(浏览器)发送的显式的数据.

会话管理(Cookie/Session技术)

什么是会话:用户打开浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程就称为一个会话: 会话过程需要解决的问题:每个用户在使用浏览器与服务器进行会话的过程中,都可能会产生一些数据,这些输入如何来进行保存?比如用户在购物网站浏览的商品记录,用户添加购物车的记录等等这些信息如何进行存储?在程序中会话跟踪是一件非常重要的事情,一个用户的所有请求操作都应该属于同一个会话,而另一个人的所有请求操作应该属于另一个人,二者不能混淆!当想到需要在保存数据时,我们首先肯定会想到使用域对象

Session技术案例-用户注册验证码

项目名称:/sessionVerificationCode 项目目录: 项目源码: index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &quo

会话之session技术(第七次课)

什么是Session 使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度. Session技术是一种将会话状态保存在服务器端的技术 ,它可以比喻成是医院发放给病人的病历卡和医院为每个病人保留的病历档案的结合方式 . 客户端需要接收.记忆和回送 Session的会话标识号,Session可以且通常是借助Cookie来传递会话标识号. 同一用户的不同页面共享数据(Session) Sessio

JavaWeb基于session和cookie的数据共享

在了解session和cookie技术之前,我们需要先了解一下什么是会话?会话可以简单理解为用户打开一个浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程称为一个会话.这样,在一次会话过程中,用户在访问web资源的过程中,各自产生了一些数据,那么用户如何来保存这些数据呢?举个简单例子,假如我们的网站是一个购物的网站,如果用户点击了购买的servlet的之后产生了一条购买的商品数据,这个数据应该存到哪里呢?那么当该用户点击付款servlet的时候,又从哪里去获取上次购买之

会话管理——cookie和session技术

1 Cookie技术 1.1 Cookie技术特点: 会话数据保存在浏览器客户端 1.2 Cookie的API Cookie类: 保存会话数据 1)创建Cookie对象,用于保存会话数据 new Cookie(java.lang.String name, java.lang.String value) 2)设置Cookie对象 void setPath(java.lang.String uri)  设置cookie有效路径 void setMaxAge(int expiry)     设置coo

15-cookie技术和session技术的联系和区别

?1. 联系: *session实现依赖于Cookie 2. session问题: * 由服务器创建,存储在服务器 * 当浏览器关闭时,服务器不关闭,再次打开浏览器时, 默认获得的不是同一个session对象,想要获取同一个session,如下操作: 创建Cookied对象,键为JSESSIONID,值为session.getId(),同时setMaxAge()时间. Cookie c=new Cookie("JSESSIONID",session.getId());     c.se

JavaWeb学习——session总结

一.session简介 session对象是服务器为每个用户浏览器创建的一个会话对象,注意:一个浏览器独占一个session对象(默认情况下),且会话状态仅在支持cookie的浏览器中保留.因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务. 二.Session和Cookie的主要区别 Cookie是把用户的数据写给用户的浏览器. Session技术把用户的数据

JavaWeb的session及其共享技术

1.什么叫会话 ? 一次会话指的是:就好比打电话,A给B打电话,接通之后,会话开始,直到挂断电话,该次会话就结束了,而浏览器访问服务器,就跟打电话一样,浏览器A给服务器发送请求,访问web程序,该次会话就已经接通,其中不管浏览器发送多少请求(就相当于接通电话后说话一样),都视为一次会话,直到浏览器关闭,本次会话结束. ? 其中注意,一个浏览器就相当于一部电话,如果使用火狐浏览器,访问服务器,就是一次会话了,然后打开google浏览器,访问服务器,这是另一个会话,虽然是在同一台电脑,同一个用户在访