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的依赖.其实这个也可以通 ...
随机推荐
- GE PACSystems RX3i 输入验证漏洞
受影响系统:General Electric CPE100 < R9.85General Electric CPE115 < R9.85General Electric CPE302 &l ...
- springboot自定义启动图画
小小娱乐,你是不是看到好多文章或段子上有这个 是不是很好玩,其实修改也很简单,就是在springboot的resources下新建一个banner.txt文件,将要输出图案放到txt文件中就好,启动时 ...
- struts-032利用工具 PythonGUI
# -*- coding: utf-8 -*- import requests from Tkinter import * class App: def __init__(self, master): ...
- 千兆网数据CRC检验和过滤
项目简述 本次项目在计算机将图像数据信息通过千兆网发送给FPGA后,由于接收到的数据可能混乱和无效,需要对数据CRC校验和无效包过滤. 项目原理及框图 对iddr_ctrl模块的输入数据和使能信号,分 ...
- 简单了解一下pinia的结构
随着 Vue3 的正式转正,Pinia 也渐渐火了起来.所以要更新一下自己的知识树了.这里主要是看看新的状态是什么"形态". 状态的容器还是"reactive" ...
- 使用过 Redis 做异步队列么,你是怎么用的?
答:一般使用 list 结构作为队列,rpush 生产消息,lpop 消费消息.当 lpop 没有 消息的时候,要适当 sleep 一会再重试. 如果对方追问可不可以不用 sleep 呢? list ...
- Eureka和Zookeeper区别?
(1)Eureka取CAP的AP,注重可用性,Zookeeper取CAP的CP注重一致性. (2)Zookeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但选举期间不可用. (3)eureka的 ...
- “a==b”和”a.equals(b)”有什么区别?
如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指 向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,所以 通常需要重写该方法来 ...
- 序列化多表操作、请求与响应、视图组件(子类与拓展类)、继承GenericAPIView类重写接口
今日内容概要 序列化多表操作 请求与相应 视图组件 内容详细 1.序列化多表操作 模型类 models.py中 # 新建django项目 # 创建表 模型类models.py中: from djang ...
- HTTP-完整状态码表
HTTP状态码列表: 状态码 状态码英文名称 中文描述 100 Continue 继续.客户端应继续其请求 101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只 ...