7、Cookie 、Session

7.1 会话

会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话

有状态会话:

一个网站,怎么证明你来过?

  • 1.服务端给客户端一个cookie,客户端下次访问服务端带上cookie就可以了,
  • 2.服务器等你你来过了,下次来匹配就好了Session

7.2保存会话的两种技术

cookie(了解,一般使用session)

  • 客户端技术(响应,请求)
  • 一般会保存在本地的 用户目录下 appdata
  • 一个网站cookie存在上限

session(重点)

  • 服务器技术,利用这个技术,还可以保存用户的会话信息到Session中(在tomcat服务器),

常见:网站登入后,接下来指定的一段时间内,可以不用再次登入

7.4Session(重点)

什么是session:

  • 服务器会给每个用户(浏览器)创建一个Session对象
  • 一个Session独占一个浏览器,只要浏览器没关闭,这个Session对象就会存在

Session和Cookie的区别:

  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
  • Session把用户的数据写到用户独占Session中,服务端保存(保存重要信息,减少服务器资源浪费)
  • Session对象由服务器产生
  • 用户拿到cookie中的sessionid,底层原理和Cookie相同,只是数据存在了服务器中

使用场景:

  • 保存一个登入用户的信息
  • 购物车信息
  • 在整个网站中经常会使用的数据,我们将它保存在Session中
  • 由于服务器关闭,session会自动失效,因此一般是通过流来保存到文件里

使用session

  • 解决乱码
  • 得到Session
  • 存入数据
  • 获取Session id
  • session的源来
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解决乱码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//得到sessionHttpSession session = req.getSession();//给session存入数据session.setAttribute("person",new Person("王叔",21));//获取sessoin的idString id = session.getId();//判断session是不是新创建的if(session.isNew()){resp.getWriter().print("session创建成功,ID:"+id);}else{resp.getWriter().print("session已创建,ID:"+id);System.out.println("session已创建,ID:"+id);}//session在浏览器访问服务器时 创建是做了什么?//        Cookie cookie = new Cookie("JSESSIONID",id);//        resp.addCookie(cookie);}
  • 获取session信息
//得到session
HttpSession session = req.getSession();//获取session的信息
Person person = (Person) session.getAttribute("person");resp.getWriter().print(person.toString());
System.out.println(person.toString());
  • 删除session元素,或注销session
//删除session内的元素
session.removeAttribute("person");
//注销session后,服务器会立刻新建一个
session.invalidate();
  • session失效时间
<!--  设置session默认的失效时间-->
<session-config><!--    15分钟后session自动失效,换个新的--><session-timeout>15</session-timeout>
</session-config>

理解图

JavaWeb09_Cookie Session相关推荐

  1. 2022面试200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring

    200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring等等 带图MD在资源https://download.csdn.net/download/m0_47987937/86509 ...

  2. Struts2 Cannot create a session after the response has been committed 一个不起眼的错误

    严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException:  Cannot c ...

  3. 解决nginx负载均衡的session共享问题

    之前有写过ubuntu环境下搭建nginx环境,今天来谈一下nginx session共享问题,查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享服务器有多台,用ngi ...

  4. 你想了解的Cookie和Session就在这~

    目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...

  5. Cookie和Session的区别与联系

    Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...

  6. php – Laravel 7 Session Lifetime

    根据Laravel config / session.php /* |----------------------------------------------------------------- ...

  7. [JAVA EE]session 和 token 机制

    HTTP 协议是无状态的. 即服务器对于客户端每次发送的请求都认为它是一个新的请求. 本次请求和上次请求无法判断是不是同一个客户端操作的. 随着 Web 应用的发展,如在线购物网站,需要登录的网站等, ...

  8. redis缓存和cookie实现Session共享

    分布式项目中要实现单点登录(SSO - Single Sign On):对于同一个客户端(例如 Chrome 浏览器),只要登录了一个子站(例如 a.com),则所有子站(b.com.c.com)都认 ...

  9. 负载均衡中使用 Redis 实现共享 Session

    最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题. 一.负载均衡 负载均 ...

最新文章

  1. Android模拟器环境下SD卡内容的管理[转]
  2. python解释器是什么-python编译器和解释器的区别是什么
  3. 为什么浮点型运算结果会有误差?
  4. svn教程----权限管理
  5. 年轻人不讲武德,居然在简历中藏木马!
  6. 无处不在_Java无处不在:使用DukeScript在任何地方运行一次编写
  7. Linux怎么添加交换空间,如何在Ubuntu上增加swap交换空间
  8. 百度开撕离职前高管:侵犯商业机密索赔 5000 万!
  9. 计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文
  10. oracle数据库表格连接数据库,excel中连接表格数据库-excel怎样连接oracle数据库(白痴级提问)...
  11. 百度贴吧签到(基于python3)
  12. 贸易情报,下一代开拓海外市场的工具,免费在线体验
  13. [Unity3d] [图文]【寻路】 Waypoint 与 NavMesh 比较(转)
  14. telegram怎么搜索机器人_telegram机器人
  15. CountDownLatch和CyclicBarrier的爱恨情仇
  16. win10清理C盘空间
  17. Redis实现分布式锁(setnx、getset、incr)以及如何处理超时情况(一)
  18. 正交设计与OO/SOLID【转】
  19. 从零开始学习网络数据包分析:科来抓包的入门教程
  20. 跨平台Brave浏览器(一百零三)

热门文章

  1. 数字万用表数字多用表软件下载安装教程
  2. TMS320F28374芯片简介
  3. 关于生僻字乱码的问题
  4. 小新air15为啥没人买_小新air15为啥没人买
  5. js随机数,随机从数组里面去一个或多个元素
  6. Redis面试完整版
  7. Android 仿今日头条、网易新闻的频道管理
  8. 性能测试工具的 Coordinated Omission 问题
  9. nginx cdn加速和反向代理
  10. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...