1.cookie

1.1.会话技术

为了实现某一功能,浏览器和服务器之间可能会产生多次的请求和响应,从浏览器访问服务器开始,到最后访问服务器结束为止,期间产生的多次请求和响应加在一起就是一次会话

1.2.cookie概述

将会话中产生的数据存在浏览器端.

浏览器访问服务器并携带要保存的数据,服务器获取数据,通过set-cookie响应头将数据响应给浏览器,让浏览器自己保存.

浏览器再次访问服务器,会在请求中,通过cookie请求头携带上次保存的数据,服务器通过获取cookie请求头来获取数据。通过这种形式保存会话中产生的数据

1.3.cookie实现

(sun公司提供了一套cookie的API)

Cookie cookie = new Cookie(String name,String value);
cookie.getName():获取cookie的名字
cookie.getValue():获取cookie的value
response.addCookie(cookie):将cookie添加到response中
request.getCookies():获取所有cookie组成的数组,如果请求中没有cookie,返回值为null

1.4.设置cookie存活时间

cookie默认为会话级别的cookie,是保存在浏览器的内存中,随着浏览器的关闭而释放
设置cookie存活时间:setMaxAge(int sec):单位为秒
一旦设置了cookie的存活时间,cookie就会保存到磁盘中,不会因为浏览器关闭而销毁

1.5.设置cookie路径

该路径为访问服务器时携带cookie的路径
setPath(request.getContextPath+"/"):通常设置为web应用根路径

1.6.删除cookie

如果想删除cookie,可以向浏览器再次发送一个同名、同path的cookie,并设置生存时间为0即可。

1.7.案例

需求:访问浏览器显示上次访问时间

package cn.tedu.cookie;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;@WebServlet(name = "CookieServletDemo1",urlPatterns = "/csdemo1")
public class CookieServletDemo1 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//    显示上次访问时间
//        保存当前访问时间String date = new Date().toLocaleString();
//        将时间加入cookieCookie cookie =new Cookie("time",date);
//        设置cookie存活时间cookie.setMaxAge(60*60*24*365);
//      设置cookie路径
cookie.setPath(request.getContextPath()+"/");
//        将cookie响应给浏览器response.addCookie(cookie);//Cookie[] cookies=request.getCookies();String timestr=null;if(cookies!=null){for (Cookie c:cookies) {
//                只要名字为time的cookieif(c.getName().equals("time")){timestr= c.getValue();}}}if(timestr!=null){response.getWriter().write("last time :"+timestr);}else{response.getWriter().write("first time ");}}
}

2.session

2.1.session概述

将会话中的数据保存在服务器端.

浏览器访问服务器,携带要保存的数据,服务器获取数据,然后检查有为有为当前浏览器服务的session,如果有,之间拿来使用,如果没有,则创建session,并将数据存入session中…

当浏览器再次访问服务器,服务器找到为当前浏览器服务的session并从中获取数据,通过这种方式保存会话的数据.

2.2.session域对象

生命周期
创建:第一次调用==request.getSession()==方法时创建

销毁:
超时死亡:默认30分钟不使用超时销毁
配置超时时间:在web.xml中

<!--配置session超时时间,单位为分钟-->
<session-config><session-timeout>1</session-timeout>
</session-config>

主动杀死:调用invalidate()方法销毁session
意外身亡:服务器意外宕机,session会随之销毁
如果服务器正常关闭,session会钝化到磁盘中,当服务器再次启动时会活化

作用范围*:整个会话
功能:在整个会话范围内共享数据

cookie与session相关推荐

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

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

  2. Cookie和Session的区别与联系

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

  3. 前端页面——Cookie与Session有什么区别

    我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...

  4. cookie、session总结

    前几天在调试第三方支付接口时碰到一个session失效问题,用了几天时间才搞明白,现在回想一下,主要还是由于cookie和session这一块的一些基本概念没有搞清楚,现总结一下. 浏览器使用HTTP ...

  5. cookie 和session 的区别详解

    转自 https://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者 ...

  6. web存储中cookie、session区别

    http协议是一种无状态的协议,浏览器对服务器的每一次请求都是独立的.为了使得web能够产生一些动态信息,就需要保存"状态",而cookie和session机制就是为了解决http ...

  7. cookie和session的代码实现

    cookie和session的代码实现 1.设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀. 我们来看如何在response设置吧 pu ...

  8. 还分不清 Cookie、Session、Token、JWT?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 转自:掘金   作者:秋天不落叶 juejin.im/po ...

  9. Token ,Cookie、Session傻傻分不清楚?

    点击上方蓝色"视学算法",选择"设为星标" 作者 | 王菜鸟1993 来源 | cnblogs.com/JamesWang1993/p/8593494.html ...

  10. Flask之Cookie与Session

    Cookie与Session 1 Cookie 设置 from flask import Flask, make_responseapp = Flask(__name__)@app.route('/c ...

最新文章

  1. linux qemu 使用方法
  2. 如果连接远程的mysql数据库连不上,可用下面的方法试下
  3. mysql表空间配置
  4. 主成分分析法(PCA)原理漫谈
  5. java的vector_java中的Vector类
  6. 坦克游戏服务器未响应,《坦克世界》退出战斗 退出战斗卡死解决办法
  7. oracler日期函数相差六个月_oracle中计算两个日期的相差天数、月数、年数、小时数、分钟数、秒数等...
  8. 十四、Oracle学习笔记:集合操作
  9. 由数据库连接池想到的----处理他人未释放的资源
  10. linux 常用图形库,在Linux下常用的3款Git图形客户端
  11. 策划运营分会场:巴别时代 CEO--放开偏执,拥抱变革
  12. 8个微信小程序UI组件框架
  13. 微信动图表情包制作教程(ok时隔一年我来把它写完了)
  14. PMBOK(第五版)学习笔记 —— 3 项目管理过程
  15. 服务器引导损坏怎么处理,硬盘主引导记录(MBR)损坏,一个命令轻松解决问题...
  16. 自然语言处理相关:英文词性缩写一览表
  17. C语言发展史——程序猿抗争史
  18. 1072: 青蛙爬井
  19. js点击箭头旋转的实现
  20. matlab 怎样画颜色渐变曲线

热门文章

  1. 行政界线类型代码_行政区划代码的代码表
  2. Scratch2exe-ch将sb2文件转换为exe文件
  3. 微信小程序图标样式的引用
  4. hownet与wordnet的区别
  5. IDEA与SVN集成
  6. 【后台模板】免费开源好看的后台模板
  7. VSCode git工具
  8. 编译原理(第3版)陈火旺——课后习题答案——第四章
  9. cadence SPB17.4 allegro + CAM350 10.5 / 10.7 / 14.6 出拼板
  10. ryzen linux mac,AMD Ryzen平台全新macOS10.13.3简洁安装黑苹果镜像