JavaWeb入门day9-随笔(session/cookie)
会话
一个网站怎么证明用户访问过
服务端给客户端一个信件,客户端下次访问服务端带上信件就可以:cookie
服务器登记,下次访问匹配:session
保存会话的技术
cookie
客户端技术(响应、请求)
session
服务器技术,利用这个技术,可以保存用户的会话信息,可以把信息或数据保存在session中
Cookie
从请求中获得cookie信息
服务器响应给客户端
1 req.setCharacterEncoding("utf-8");
2 resp.setContentType("text/html;charset=UTF-8");
3 resp.setCharacterEncoding("utf-8");
4
5 PrintWriter out = resp.getWriter();
6
7
8 Cookie[] cookies = req.getCookies();
9
10 //判断cookie是否为空
11 if (cookies != null) {
12 out.write("你上一次访问的时间是:");
13 for (int i = 0; i < cookies.length; i++) {
14 Cookie cookie = cookies[i];
15 //获取名字
16 if(cookie.getName().equals("lastLoginTime")){
17 //获取值
18 long l = Long.parseLong(cookie.getValue());
19 Date date = new Date(l);
20 out.write(date.toLocaleString());
21 }
22
23 }
24 } else {
25 out.write("这是你第一次访问本站");
26 }
27
28 Cookie cookie=new Cookie("lastLoginTime", ""+System.currentTimeMillis());
29 //给cookie设置有效期
30 cookie.setMaxAge(24*60*60);
31
32 resp.addCookie(cookie);
一般会保存在本地的用户目录下的appdata
一个网站的cookie是否存在上限
- 一个cookie只能保存一个信息
- 一个web站点可以给浏览器发送多个cookie,最多存放20个
- cookie有大小限制:4kb
- 浏览器上限:300个cookie
删除cookie
- 不设置有效期,关闭浏览器自动小时
- 设置有效期为0
Session
什么是Session
服务器会给每一个用户(浏览器)创建一个Session对象
一个session独占一个浏览器,浏览器不关闭,session就还在
用户登录以后整个网站都可以访问
Session和Cookie区别
- Cookie:把用户的数据写给用户的浏览器,浏览器保存;可以保存多个
- Session:把用户的数据写到用户独占的Session中,服务器保存;保存重要信息;由服务器创建
使用场景
- 保存一个登录用户的信息
- 购物车信息
- 在整个网站中经常使用到的数据
1 req.setCharacterEncoding("utf-8");
2 resp.setCharacterEncoding("utf-8");
3 resp.setContentType("text/html;charset=utf-8");
4
5 //得到Session
6 HttpSession session = req.getSession();
7 //给Session存数据
8 session.setAttribute("name", new Person("Cra2iTeT",1));
9 //获取Session的id
10 String id = session.getId();
11 //判断是否是新创建的
12 if (session.isNew()) {
13 resp.getWriter().write("session创建成功,ID:" + id);
14 }else {
15 resp.getWriter().write("session已经存在,ID:" + id);
16 }
1 req.setCharacterEncoding("utf-8");
2 resp.setCharacterEncoding("utf-8");
3 resp.setContentType("text/html;charset=utf-8");
4
5 //得到Session
6 HttpSession session = req.getSession();
7 //给Session存数据
8 Person person = (Person) session.getAttribute("name");
9 System.out.println(person.toString());
1 HttpSession session = req.getSession();
2 session.removeAttribute("name");
3 //手动注销
4 session.invalidate();
1 <!-- 设置session的默认注销时间-->
2 <session-config>
3 <!-- 十五分钟后Session自动失效-->
4 <session-timeout>15</session-timeout>
5 </session-config>
JavaWeb入门day9-随笔(session/cookie)的更多相关文章
- 超全面的JavaWeb笔记day11<JSP&Session&Cookie&HttpSession>
1.JSP 2.回话跟踪技术 3.Cookie 4.HttpSession JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态 ...
- JavaWeb学习篇之----Session&&Cookie
今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一下Session和Cookie的相关知识,首先我们来看一下Cookie的相关知识: 一.Cookie 简介: Cookie是客户端技术,服务器 ...
- [Web][学习随笔]Session&cookie
Session 从登录建立连接到退出就是一次会话.Session数据就会在会话期间用户存在服务器端的数据.这样,当用户在Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会 ...
- [转载]JavaEE学习篇之——Session&&Cookie
原文链接: http://blog.csdn.net/jiangwei0910410003/article/details/23337043 今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一 ...
- 第一篇 Flask基础篇之(配置文件,路由系统,模板,请求响应,session&cookie)
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...
- session & cookie(li)
Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...
- web也是区分前端与后端的,session\cookie辨析
<1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...
- 浅析session&cookie
session&cookie没有出现的黑暗时代 大家都知道,HTTP协议是一种无状态的协议,本次请求下一次请求没有任何的关联,所有没有办法直接用http协议来记住用户的信息,试想一向,每一次点 ...
- http之Session&Cookie
百度了一波session与Cookie,我发现这东西远比我想象中更复杂(可能是因为我不明白底层的运行原理).网上也是一堆的关于Session与Cookie区别/联系的文章,然而,我看完了还是一脸懵逼的 ...
- Asp.net MVC使用Model Binding解除Session, Cookie等依赖
上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...
随机推荐
- 时间模块 time 随机模块random os模块,sys模块
时间模块 time #时间模块 import time #三种格式 #时间戳时间:是一个浮点数,以秒为单位,计算机用语 #结构化时间 :是一个元组 #用于中间转换 #格式化时间:str数据类型, 用 ...
- Spring Boot整合Redis-转载
Spring Boot整合Redis的三中方式的博客: https://wangsong.blog.csdn.net/article/details/103210490 使用spring.cache. ...
- go语言学习入门篇1---go语言的主要特性与发展
1.1 影响 Go 语言发展的早期编程语言 正如 "21 世纪的 C 语言" 这句话所说,Go 语言并不是凭空而造的,而是和 C++.Java 和 C# 一样属于 C 系.不仅如此 ...
- VS Code通过code runner插件编译运行多个cpp文件 | 链接编译.h文件
1.多个cpp文件在同一级目录 参考:https://jingyan.baidu.com/article/2f9b480d7ceb3d01ca6cc224.html 此时可通过修改Code Runne ...
- CF375E Red and Black Tree(线性规划)
CF375E Red and Black Tree(线性规划) Luogu 题解时间 很明显有一个略显复杂的 $ n^3 $ dp,但不在今天讨论范围内. 考虑一些更简单的方法. 设有 $ m $ 个 ...
- java动态代理--代理接口无实现类
转载:https://blog.csdn.net/weixin_45674354/article/details/103246715 1.接口定义: package cn.proxy; public ...
- 什么是springcloud?springcloud断路器的作用是什么?springcloud的核心组件有什么?
一.什么是springcloud 1.springcloud概述 Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Sp ...
- python 元组tuple 增删改查操作
初始化: data_tuple = () data_tuple1 = (1,) data_tuple2 = tuple() 新增: data_tuple+data_tuple1 (data_tuple ...
- 使用Spring通过什么方式访问Hibernate?
在Spring中有两种方式访问Hibernate: 控制反转 Hibernate Template和 Callback. 继承 HibernateDAOSupport提供一个AOP 拦截器.
- Java Output流写入包装问题
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); OutputStreamWriter output ...