session对象

jsp内置对象session对象

。_饼干妹妹 提交于 2019-12-15 05:41:03
session对象是用来在每一个用户之间分别保存每一个用户信息的对象,以便跟踪用户的操作状态。session的信息保存在服务器端,session的id保存在客户端的cookie中。 例如我们乘坐火车就可以看做是一个session。当我们乘坐火车的时候,我们需要持有一张车票。车票就相当于是一个cookie。而车票上的座位号就相当于是sessionId。当我们需要访问列车的时候,检票员会事先检查我们是否持有cookie,如果有就根据cookie里的内容(sessionId) 来判断使用者。如果没有会再一次创建。 session原理 :张三和李四分别请求访问页面,Tomcat服务器根据需求划分出一块内存来设置session,将此次会话信息保留在服务器端上,同时为这两个session分配sessionID,并传到客户端浏览器,交由由cookie来进行管理。当访问完之后,下次张三需要继续访问,就会将cookie的sessionID传到服务器上,进行寻找空间。如果有则继续执行,如果没有则重新创建一个session。 session超时 :所谓超时是指 session多久未被访问,就自动销毁掉。在Tomcat中默认是30分钟。如果30分钟,session未被访问,这个session就被释放掉。 URL-rewriting :是说如果客户端浏览器禁用或是不支持cookie,将进行URL地址重写

SpringBoot之WebSocket消息推送

风流意气都作罢 提交于 2019-12-15 05:33:51
WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 STOMP协议 STOMP是面向文本的消息传送协议。STOMP客户端与支持STOMP协议的消息代理进行通信。STOMP使用不同的命令,如连接,发送,订阅,断开等进行通信。 SockJS SockJS是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道 使用websocket有两种方式:1是使用sockjs,2是使用h5的标准。使用Html5标准自然更方便简单,所以记录的是配合h5的使用方法。 1、pom引入  核心是@ServerEndpoint这个注解。这个注解是Javaee标准里的注解,tomcat7以上已经对其进行了实现,如果是用传统方法使用tomcat发布项目,只要在pom文件中引入javaee标准即可使用。 <dependency>

西蒙购物网(中)

我的梦境 提交于 2019-12-15 04:00:15
控制层 在src里创建net.yy.shop.servlet包,在里面创建各种控制处理类 1,登录处理类LoginServlet package net . yy . shop . servlet ; import java . io . IOException ; import javax . servlet . ServletException ; import javax . servlet . annotation . WebServlet ; import javax . servlet . http . HttpServlet ; import javax . servlet . http . HttpServletRequest ; import javax . servlet . http . HttpServletResponse ; import javax . servlet . http . HttpSession ; import net . yy . shop . bean . User ; import net . yy . shop . service . UserService ; @WebServlet ( "/login" ) public class LoginServlet extends HttpServlet { private

Cookie 和 Session深入理解

半腔热情 提交于 2019-12-15 02:53:55
我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。 但如果再往深入探讨的话,就慢慢有一些朋友不太了解了,谈起原理时就很少有朋友全部回答准确。今天和大家一起深入聊聊有关 Cookie 和 Session 的话题 。 第一层楼 什么是 Cookie 和 Session ?初级程序员高频面试题。 什么是 Cookie HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。 Cookie 主要用于以下三个方面: 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置、主题等) 浏览器行为跟踪(如跟踪分析用户行为等) 什么是 Session Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session

JavaWeb Session的用法

随声附和 提交于 2019-12-14 21:52:34
session,在服务器端保存用户多次请求的数据。(注意:session技术,还是依赖cookie技术) 1 、session是服务器开辟的一个用来存储数据的空间 2 、 服务器为每个浏览器单独开辟一个session 3 、 服务器根据浏览器发送过来的cookie,来确认当前浏览器使用哪个session ——在WEB开发中,服务器可以为 每个用户浏览器 创建一个 会话 对象(session对象),注意: 一个浏览器独占一个 session 对象 (默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。 ——Session和Cookie的主要区别在于: Cookie是把用户的数据写给用户的浏览器。 Session技术把用户的数据写到用户独占的session中(服务器端)。 1、获取Session对象——Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。 HttpSession session=request.getSession(); 2、在Session中存、取、删数据 Session存储数据以K-V形式,K不能为空,同样的K,V不同会进行替换。 protected

http协议

你离开我真会死。 提交于 2019-12-14 15:36:22
想来在下也工作多年,知识亦学亦忘,人生苦短,总该留下点滴,以备所需查找翻阅...... 一、基本概念 HTTP (Hyper Text Transfer Protocol) ,即超文本传输协议,是当下互联网应用最为广泛的一种网络协议;基于TCP/IP,是一种应用层的协议;简而言之,就是实现client端与server端交互的一种统一格式,这也就是为什么叫做协议,即双方要照章办事,才能完成数据的交互成功。 二、特点 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 所以

Hibernate的一级缓存和二级缓存

妖精的绣舞 提交于 2019-12-14 06:46:09
文章目录 1. Hibernate的一级缓存 2. 证明一级缓存的存在 3. 一级缓存的内部结构 4. Hibernate的二级缓存 1. Hibernate的一级缓存 缓存是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是 降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能 。缓存中的数据是数据存储源中数据的拷贝,缓存的物理介质通常是内存。 Hibernate的缓存分为一级缓存和二级缓存,Hibernate的这两级缓存都位于持久化层,存储的都是数据库数据的备份。其中第一级缓存为Hibernate的内置缓存,不能被卸载。接下来围绕Hibernate的一级缓存进行详细的讲解。 Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放管理的Java对象。在使用Hibernate査询对象的时候,首先会使用对象属性的OID值在Hibernate的一级缓存中进行査找,如果找到匹配OID值的对象,就直接将该对象从一级缓存中取出使用,不会再查询数据库。如果没有找到相同OID值的对象,则会去数据库中査找相应数据。当从数据库中査询到所需数据时,该数据信息也会放置到一级缓存中。 Hibernate的一级缓存的作用就是减少对数据库的访问次数 。 在Session接口的实现中包含一系列的Java集合

session与cookie的区别和联系

假如想象 提交于 2019-12-14 01:19:29
一、Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。 一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使用数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。 二、Session的客户端实现形式(即Session ID的保存方法) 一般浏览器提供了两种方式来保存,还有一种是程序员使用html隐藏域的方式自定义实现: [1] 使用Cookie来保存,这是最常见的方法,本文“记住我的登录状态”功能的实现正式基于这种方式的。服务器通过设置Cookie的方式将Session

JSP + Session Cookie详解

左心房为你撑大大i 提交于 2019-12-12 18:14:31
篇幅较大,对JSP进行了非常详细的讲解,并解释了Session和Cookie的实现原理 ,预计看完需要20分钟左右,慢慢享受吧 JSP概述 掌握了servlet后,就可以利用servlet来开发动态页面了,但是使用Servlet开发动态页面,存在种种问题,来看下面的例子: 使用Servlet来开发百度首页: 分析上面的案例不难发现以下问题: Html与Java代码混合在一起,维护困难 每一行都是一个println语句,效率低下 编译器无法检测问题,调试麻烦 JSP概念 全称JavaServerPage服务器页面,为了使开发动态页面更加简单而出现,本质上也是一个Servlet 动态与静态 一个页面如果不会随着任何条件(时间,用户信息...)改变而发生变化,那它就是静态的,静态页面通常只能提供最基本的信息展示 动态页面是会随着访问时的时间,地点,提交的数据不同而展示不同的内容,它就是动态页面,例如可以根据登录用户的不同而展示的不同的购物信息,通常页面的数据来自于数据库 特点: JSP可将原本都在Servlet中的java代码与HTML分离,降低耦合,可维护性好 可编写原生HTML,且编译器会进行语法检查,开发效率更高 JSP本质就是Servlet,被执行前会被先转译为java文件 注意 :JSP文件需放在web(webContent)资源目录下,后缀为.jsp jsp执行过程 示例:

Servlet学习笔记——第四天

心不动则不痛 提交于 2019-12-12 18:07:16
Servlet学习打卡 Servlet学习笔记---第四天 Servlet笔记 第四天 一. 复习 二、用户信息追踪 1. 概念: 2. 手段 1) cookie : 在客户端浏览器中保存用户状态数据 2)HttpSession:在服务器端保存用户状态数据 三. Cookie 1. 概念 1)服务器写到浏览器上的一小段String,由name和value两部分组成(不支持中文) 2)当浏览器访问服务器时,服务器可以读取浏览器上曾经自己写过的cookie 3)cookie有存活时间(可以设置) 2. 操作cookie的API 1)创建cookie对象 --- Cookie c = new Cookie( name , value ); 2)写cookie --- response.addCookie(c); 3)读cookie --- request.getCookies() --> Cookie[] 如果没有读到,返回值为null 4)设置存活时间 --- cookie.setMaxAge( xxx ); 5)设置cookie的访问路经 --- cookie.setPath("....."); 四. HttpSession 会话:client与服务器端的一次完整的通信过程(涵盖多次请求) 1. 使用【重点】 1)获取 --- HttpSession session =