JavaWeb09_Cookie Session
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相关推荐
- 2022面试200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring
200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring等等 带图MD在资源https://download.csdn.net/download/m0_47987937/86509 ...
- Struts2 Cannot create a session after the response has been committed 一个不起眼的错误
严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException: Cannot c ...
- 解决nginx负载均衡的session共享问题
之前有写过ubuntu环境下搭建nginx环境,今天来谈一下nginx session共享问题,查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享服务器有多台,用ngi ...
- 你想了解的Cookie和Session就在这~
目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...
- Cookie和Session的区别与联系
Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...
- php – Laravel 7 Session Lifetime
根据Laravel config / session.php /* |----------------------------------------------------------------- ...
- [JAVA EE]session 和 token 机制
HTTP 协议是无状态的. 即服务器对于客户端每次发送的请求都认为它是一个新的请求. 本次请求和上次请求无法判断是不是同一个客户端操作的. 随着 Web 应用的发展,如在线购物网站,需要登录的网站等, ...
- redis缓存和cookie实现Session共享
分布式项目中要实现单点登录(SSO - Single Sign On):对于同一个客户端(例如 Chrome 浏览器),只要登录了一个子站(例如 a.com),则所有子站(b.com.c.com)都认 ...
- 负载均衡中使用 Redis 实现共享 Session
最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题. 一.负载均衡 负载均 ...
最新文章
- Android模拟器环境下SD卡内容的管理[转]
- python解释器是什么-python编译器和解释器的区别是什么
- 为什么浮点型运算结果会有误差?
- svn教程----权限管理
- 年轻人不讲武德,居然在简历中藏木马!
- 无处不在_Java无处不在:使用DukeScript在任何地方运行一次编写
- Linux怎么添加交换空间,如何在Ubuntu上增加swap交换空间
- 百度开撕离职前高管:侵犯商业机密索赔 5000 万!
- 计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文
- oracle数据库表格连接数据库,excel中连接表格数据库-excel怎样连接oracle数据库(白痴级提问)...
- 百度贴吧签到(基于python3)
- 贸易情报,下一代开拓海外市场的工具,免费在线体验
- [Unity3d] [图文]【寻路】 Waypoint 与 NavMesh 比较(转)
- telegram怎么搜索机器人_telegram机器人
- CountDownLatch和CyclicBarrier的爱恨情仇
- win10清理C盘空间
- Redis实现分布式锁(setnx、getset、incr)以及如何处理超时情况(一)
- 正交设计与OO/SOLID【转】
- 从零开始学习网络数据包分析:科来抓包的入门教程
- 跨平台Brave浏览器(一百零三)