cookie与Session

简介: cookie与Session

概述

用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

保持各个客户端自己的数据,每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据

cookie

1、创建cookie

Cookie cookie = Cookie(String name, String value)

cookie只能存储非中文字符串

2、向客户端发送cookie

response.addCookie(cookie名称)

cookie会以响应头方式发送给客户端

3、携带cookie

请求头当中就能够看到cookie信息,访问服务器的任何资源,一般情况下都会把cookie带去过

4、Cookie默认存储时间

如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭cookie信息销毁

设置Cookie在客户端的存储时间,cookie.setMaxAge(int seconds);,设置的时间为秒,如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里,过期会自动删除

5、设置Cookie的携带路径

默认情况下会在访问创建cookie的web资源相同的路径都携带cookie信息

http://localhost:9991/demo/indexServlet 在demo/indexServlet下创建cookie

http://localhost:9991/demo/index.jsp 在demo下的index.jsp访问时会携带cookie

http://localhost:9991/test/index.jsp 在demo下 不会携带cookie

设置携带路径cookie.setPath(String path);

cookie.setPath("/demo/index")//只有访问index才携带cookie信息

cookie.setPath("/demo")//只有访问指定工程都会携带cookie

cookie.setPath("/")//访问服务器下部署的所有工程都会携带cookie

6、删除Cookie

使用同名同路径的持久化时间为0的cookie进行覆盖即可

7、服务器如何获取客户端携带的cookie

//获取所有的cookie

       Cookie[] cookies = request.getCookies();

       if(cookies != null){

           //遍历所有的cookie

           for (Cookie cookie:cookies){

               String name = cookie.getName();

               //判断名称是否自己存储的

               if(name.equals("myCookie")){

                   String mycookie = cookie.getValue();

               }

           }

       }

8、应用案列

记住我

上次登录时间

第一次访问,告诉用户是第一次访问,获取当前的时间,并把它写到cookie当中,响应给浏览器,用户下次访问时,获取用户携带的cookie,把日期在浏览器当中显示,记录最新的cookie

session

1、概述

Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间存储客户的数据,客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间Session需要借助于Cookie存储客户的唯一性标识SESSIONID

2、获取Session对象

HttpSession session = request.getSession();,获得专属于当前会话的Session对象,如果服务器端没有该会话的Session对象,会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有的Session返回,本质就是根据SESSIONID判断该客户端是否在服务器上已经存在session了

3、向session中存取对象

Session对象和servletContext域,request域一样是一个域对象

void setAttribute(String var1, Object var2);

Object getAttribute(String var1);

void removeAttribute(String var1);

4、session的生命周期


相关文章
|
27天前
|
存储 前端开发 Java
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute
|
2月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
96 4
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
3月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
251 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
3月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
68 1
|
4月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
4月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
4月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
95 1
|
5月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
366 1
|
5月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
92 1