cookie&session

简介: 会话技术 1.       会话,用户打开浏览器,点了一些超链接,关闭浏览器的过程 2.       会话过程中会产生一些数据,这些数据是每个用户独享的,需要找个地方存起来 3.       会话技术就是解决上述问题的,Cookie是客户端技术,Session是服务器端技术   Cookie对象 1.       Cookie对象的创建 Cookie coo

会话技术

1.       会话,用户打开浏览器,点了一些超链接,关闭浏览器的过程

2.       会话过程中会产生一些数据,这些数据是每个用户独享的,需要找个地方存起来

3.       会话技术就是解决上述问题的,Cookie是客户端技术,Session是服务器端技术

 

Cookie对象

1.       Cookie对象的创建

Cookie cookie = new Cookie(name, value);

2.       发送Cookie

response.addCookie(cookie);

3.       获取指定的Cookie

      // 获得用户发送的所有Cookie

      Cookie[] cookies = request.getCookies(); // 如果没发Cookie过来,为null

      // 遍历 找到lastAccessTime

      String lastAccessTime = null;

      for(int i=0; cookies!=null&&i<cookies.length; i++) {

         String name = cookies[i].getName();  // 一个Cookie的name

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

            // 找到了, 几下value

            lastAccessTime = cookies[i].getValue();

         }

      }

4.       设置Cookie的有效时间

cookie默认情况下在当前浏览器进程有效,如果想让cookie长期驻留客户机的硬盘,就需要指定时间

cookie.setMaxAge(time)  time以秒为单位

setMaxAge(0)  通知浏览器删除该Cookie

 

设置cookie的有效路径

浏览器会将所有和当前路径匹配的cookie都发给服务器

 

5.       显示用户最近的浏览记录

两个页面

显示所有的商品(从数据库找出商品显示),显示最近的记录(读取客户发送的Cookie中存的id,找出书显示)

CookieDemo2

显示商品的详细信息,并向客户端发送Cookie,难点如果产生新的Cookie

将客户端带过来的Cookie分割后存入集合,根据不同的情况将新的id加进去,迭代集合用分隔符串起来

CookieDemo3

 

 

Session对象

1.       session的原理

request对象有个方法是getSession()

首先看浏览器是否发送了Cookie (JSESSIONID) ,如果发了,拿着id去内存中找对应的session对象返回

如果没有发Cookie或者没找到对应的Session对象,创建一个新的Session对象

getSession( boolean create)

create true的时候,如果内存有session就返回,没有就创建新的

createfalse的时候,意味着只查找不创建,有就返回,没有不创建,返回null

 

 

2.       session的运行要依靠cookie来发送JSESSIONID

如果想让多个浏览器共享一个session,我们就需要人工发送Cookie,并设置Cookie的有效时间

 

3.如果浏览器禁用Cookie,那么Session也玩不起来了

 

浏览器禁用Cookie

要想让session好用,就需要在页面跳转时发送sessionid

有一个技术url重写

重写后的地址会在原有的url地址的基础上加上JSESSIONID

如果是超链接或表单提交的地址,重写方式如下:

String newUrl = response.encodeURL(url);

如果是请求重定向的地址,方式如下:

String newUrl = response.encodeRedirectURL(url);

 

3.  session的应用 (重点)

简单购物车的实现  ListServlet BuyServlet ListCartServlet

用户登录 Login.jsp LoginServlet indes.jsp LogoutServlet

防止表单重复提交

可以用js来做,但是只能增加用户的体验,不能完全防止坏人

session做防表单重复提交

FormServlet   HandleFormServlet  TokenProcessor

目录
相关文章
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
60 4
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
190 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
2月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
26 1
|
3月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
3月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
3月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
65 0
|
4月前
|
存储 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
257 1
|
4月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
75 1
|
4月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
288 0