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的依赖.其实这个也可以通 ...
随机推荐
- SpringBoot 如何实现异步编程,老鸟们都这么玩的!
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题? 为什么要用异步框架,它解决什么问题? 在SpringBoot的日常开发中 ...
- 自定义 Django admin 组件
摘要:学习 Django admin 组件,仿照源码的逻辑,自定义了一个简易的 stark 组件,实现类似 admin 的功能. 可自动生成 url 路由,对于model 有与之相应的配置类对象,可进 ...
- Apache+PHP+Mysql安装手册(Linux)
一. 检查系统环境 1.确认centos版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Co ...
- 如何巧妙使用vim处理文件
一系列流程书写如何用vim巧妙处理文件 1. 创建两个待处理的文件 root@ubuntu:/home/watson/real-watson# touch left right 2. 简单增补文件内容 ...
- 采用WPF开发第二版OFD阅读器,持续完善中,敬请期待!
本人研究OFD多年,采用C#和QT开发了一系列ofd相关软件.在这些产品中,阅读器始终占据着非常重要的位置.可以说,阅读器是直接面向最终客户的产品.是集OFD各类知识之大成的产品.市面上的阅读器产品林 ...
- Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)
插入数据 要将数据插入分布式表,您可以使用标准 PostgreSQL INSERT 命令.例如,我们从 Github 存档数据集中随机选择两行. INSERT http://www.postgresq ...
- java LinkedList (详解)
Java 链表(LinkedList) 一.链表简介 1.链表 (Linked List) 是一种常见的基础数据结构,是一种线性表,但是链表不会按线性表的顺序存储数据,而是每个节点里存到下一个节点的地 ...
- k8s集群搭建过程详解
准备工作 安装CentOS7虚拟机 略 安装Docker 略 关闭CentOS7自带的防火墙服务 systemctl disable firewalld systemctl stop firewall ...
- synchronized的原理
synchronized的使用 synchronized是一个java中的关键字,是基于JVM层面的,用于保证java的多线程安全,它具有四大特性,可用于完全替代volatile: 原子性:所谓原子性 ...
- 写一段代码在遍历 ArrayList 时移除一个元素?
该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 Iterator 的 remove()方法.这有一段示例代码,是使用正确的方式来实现在遍历的过程中移 除元素,而不会出现 ...