session对象

cookie技术和session技术

只谈情不闲聊 提交于 2020-03-12 04:16:42
一,cookie技术 Cookie是由服务器端生成,发送给浏览器,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器前提是浏览器设置为启用cookie。 1,服务器端向客户端发送一个Cookie 1)创建Cookie: Cookie cookie = new Cookie(String cookieName,String cookieValue); 示例: Cookie cookie = new Cookie("username","zhangsan"); 那么该cookie会以响应头的形式发送给客户端: 注意:Cookie不能存储中文 2)设置Cookie在客户端的持久化时间: void setMaxAge(int seconds) cookie.setMaxAge(int seconds); ---时间秒 注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里 示例: cookie.setMaxAge(10*60); 设置cookie信息在浏览器的磁盘文件中存储的时间是10分钟,过期浏览器 自动删除该cookie信息 3)设置Cookie的携带路径: void setPath

session和cookie的简单理解

梦想的初衷 提交于 2020-03-11 19:01:46
0. 引子,我们为什么要cookie和session 因为http请求是无状态的(不能记录用户的登录状态等),所以需要某种机制来保存用户的登录状态等信息,在下次访问web服务的时候,不用再次校验是否登录等状态,session机制和cookie机制分别是在服务器端和浏览器端的解决方案。 1.关于cookie 1.1 什么是cookie cookie,原意饼干。用来在浏览器端存储用户的状态信息,然后在访问后端的时候将这部分信息带回到后端。 cookie的内容主要包括:名字,值,过期时间,路径和域 1.2 cookie的分类 会话cookie 不设置过期时间的cookie 保存在浏览器的内存中,关闭浏览器,cookie便被销毁。(常常被用作session) 普通cookie 设置了过期时间 保存在硬盘上 1.3怎么应用 发起请求时:浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围(由路径和域决定)大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。 处理请求时:在服务器端, 一般会对请求头中带的cookie信息做检查(比如说登录检查),如果检查通过,才能进行实际的业务处理。 如果校验不通过,例如没有找到cookie或者cookie信息不正确(可能是伪造),跳转让其登录,然后登录完成之后,在响应中返回cookie信息

cookie和session

久未见 提交于 2020-03-11 03:58:30
引言: 在计算机通信网络中,网络协议是必不可少。其中超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。 然而HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪用户登录网站后的一系列动作,这一系列动作我们称之为会话,比如浏览商品添加到购物车并购买。 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。在这篇博客里,我们来看看这两个技术的区别。 Cookie: Cookie实际上是一小段的文本信息。在客户端请求服务器时,如果服务器需要记录该用户状态,如用户信息等,就使用response对象向客户端浏览器发送一个Cookie。客户端会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。工作原理如下: 1. 客户端第一次向服务器发起请求 2. 服务器准备一个cookie,将需缓存的内容设置到cookie中 3. 服务器将请求响应结果与cookie一起回馈给客户端 4. 客户端处理请求的响应与读取cookie 5. 客户端再次向服务器发送请求 6. 服务器检查传来的cookie,辨认状态

token和session的区别

你说的曾经没有我的故事 提交于 2020-03-10 21:08:41
 session和token都是用来保持会话,功能相同 一、 session机制,原理 session是 服务端 存储的一个对象,主要用来存储所有访问过该服务端的客户端的用户信息(也可以存储其他信息),从而实现 保持用户会话状态 。但是服务器重启时,内存会被销毁,存储的用户信息也就消失了。不同的用户访问服务端的时候会在session对象中存储键值对,“键”用来存储开启这个用户信息的“钥匙”,在登录成功后,“钥匙” 通过cookie返回给客户端 , 客户端存储为sessionId记录在cookie中 。当客户端再次访问时,会 默认携带cookie中的sessionId 来实现会话机制。 session是基于cookie的。 cookie的数据4k左右 cookie存储数据的格式:字符串key=value cookie存储有效期:可以自行通过expires进行具体的日期设置,如果没设置,默认是关闭浏览器时失效。 cookie有效范围:当前域名下有效。所以 session这种会话存储方式方式只适用于客户端代码和服务端代码运行在同一台服务器上 (前后端项目协议、域名、端口号都一致,即在一个项目下) session持久化 用于解决重启服务器后session就消失的问题。在数据库中存储session,而不是存储在内存中。通过包: express-mysql-session 其它

java基础篇---Servlet监听器

南楼画角 提交于 2020-03-10 11:35:27
在写此篇前,看了一下园友写的,感觉其基础知识归纳的十分全面,我在此就不累赘的写了,链接地址(http://www.cnblogs.com/sherryueda/p/4273169.html), 我就写一下关于监听器的具体应用: 功能是负责监听WEB的各种操作,当相关的事件触发之后将产生事件,并对此事件进行处理,在WEB中可以对application、session、request三种操作进行监听。 对application监听: 对application监听,实际上就是对ServletContext(Servlet上下文)监听,主要使用以下两个接口:ServletContextListener ,ServletContextAttributeListener package com.oumyye.监听器; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ServletContextListenerDemo implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { // 上下文初始化时触发 System

监听器(Listener)学习(一)

放肆的年华 提交于 2020-03-10 11:13:26
一、监听器介绍 1.1、监听器的概念   监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。 1.2、监听器案例——监听window窗口的事件监听器 package com.listener.demo; import java.awt.Frame; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Demo1 { /** * java的事件监听机制 * 1、事件监听涉及到三个组件:事件源、事件对象、事件监听器 * 2、当事件源上发生某一个动作时,它会调用事件监听器的一个方法,并在调用该方法时把事件对象传递进去, * 开发人员在监听器中通过事件对象,就可以拿到事件源,从而对事件源进行操作。 */ public static void main(String[] args) { Frame f = new Frame(); f.setSize(400, 400); f.setVisible(true); //注册事件监听器 f

java servlet Listener监听器

核能气质少年 提交于 2020-03-10 11:08:18
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动 而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些 固定的对象等等。首先来看一下ServletContextListener接口的源代码: [java] view plain copy public abstract interface ServletContextListener extends EventListener{ public abstract void contextInitialized(ServletContextEvent paramServletContextEvent); public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent); } 下面利用监听器对数据库连接池DataSource的初始化演示它的使用:ListenerTest.java [java] view plain copy import javax.servlet.ServletContext; import javax

第7章 监听器Listener

霸气de小男生 提交于 2020-03-10 11:07:04
Listener概述 Listener的使用 使用Listener需要实现相应的Listener接口。 public class SessionListenerTest implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { HttpSession session = se.getSession(); System.out.println(" 新创建了一个 session: " + session); } public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); System.out.println(" 销毁了一个 session: " + session); } } 以上代码实现了HttpSessionListener接口。创建Session时会是服务器调用SessionCreated()方法,销毁Session时服务器调用sessionDestroyed()方法。他们都以HttpSessionEvent对象为参数,可以从该参数中获取session。Listener需要在web.xml中配置才能生效。 配置如下: <listener>

java的servlet之cookies和session篇

本小妞迷上赌 提交于 2020-03-09 18:41:14
Cookie:客户端会话技术,将数据保存到客户端 1.基于响应头set-cookie和请求cookie实现   创建cookie对象new Cookie();   发送Cookie对象response.addCookie();   获取Cookie对象request.getCookies(); 2. 一次可不可以发送多个cookie?   可以   可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 3. cookie在浏览器中保存多长时间?   默认情况下,当浏览器关闭后,Cookie数据被销毁   持久化存储:   setMaxAge(int seconds)     正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效     负数:默认值     零:删除cookie信息 4. cookie能不能存中文?   在tomcat 8 之前 cookie中不能直接存储中文数据。   需要将中文数据转码---一般采用URL编码(%E3)   在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析 5.cookie共享问题?   假设在一个tomcat服务器中,部署了多个web项目

request response session的常用方法

偶尔善良 提交于 2020-03-09 17:43:24
.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流 7 String getParameter(String name) 返回name指定参数的参数值 8 Enumeration getParameterNames() 返回可用参数名的枚举 9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 10 String getProtocol() 返回请求用的协议类型及版本号 11 String getScheme() 返回请求用的计划名,如:http