首页 > 其他分享 >会话及管理技术

会话及管理技术

时间:2023-02-13 15:06:06浏览次数:49  
标签:String 管理 对象 技术 会话 session cookie Cookie


第五章 会话以及会话管理技术

1.会话概述:

什么是会话:从打开浏览器,到访问网页,到最终关闭浏览器,整个过程就是一次会话。

会话的特点:包含多个请求,一次完整的会话对应一个用户。

会话管理技术:

第一种:cookie技术:客户端技术

第二种:session技术:服务端技术.

购物车案例:买完商品后加入购物车,买的商品存到什么对象比较合适?

1.使用request域对象保存商品信息:

结论:使用request不可以保存商品信息,因为每次发送请求都会产生一个

新的请求对象。

会话及管理技术_会话管理

2.使用ServletContext域对象保存商品信息

会话及管理技术_java_02


结论:使用ServletContext对象保存商品信息可以,但是不合理。
所以在开发中,保存会话过程中产生的数据采用会话管理技术,也就是使用cookie
和session技术来保存会话过程中产生的数据。

2.Cookie对象

1.1什么是cookie

Cookie是一种会话管理技术,它是用来保存会话过程中产生的数据,然后在浏览器

和服务器交互时,会使用cookie里面保存的数据。

会话及管理技术_cookie_03


注意:首次访问服务器时,浏览器不会携带cookie到服务端。

1.2 Cookie常用的API

[1].得到cookie对象:Cookie cookie=new Cookie(String key,String value);
[2].回写(响应)cookie到浏览器端:response.addCookie(cookie);
[3].得到cookie的名称:String key=cookie.getName();
得到cookie的值:String value=cookie.getvalue();
[4].给cookie设置生命时长:setMaxAge(int sr);

比如:cookie.setMaxAge(606024*7);//说明cookie能保存7天

cookie分类:

(1)会话级别cookie:浏览器关闭,cookie对象就销毁了.
(2)持久化cookie:通过setMaxAge()这个方法来设置
[5].给cookie设置路径,设置域名.
setPath(路径的url),setDomain(域名);

比如:域名就是服务器名称,比如说:www.baidu.com

[6].得到cookie:Cookie[] cookies=request.getCookies();

1.3.显示用户的上次访问时间

会话及管理技术_java_04


实现步骤:

[1]判断是否是首次访问:

如果cookie里面有时间,说明就不是第一次访问。

[2].如果是第一次访问,创建cookie,保存时间,把这个cookie回写到浏览器端。

[3].如果不是第一次访问,把时间回写到浏览器,记住当前时间,把时间保存

到cookie里面。

例如:

//处理响应中文的乱码问题
response.setContentType("text/html;charset=utf-8");
//1.获取所有cookie
Cookie[] cookies=request.getCookies();
//2.遍历cookie数组
String lastTime=null;
for(int i=0;cookies!=null&&i<cookies.length;i++) {
//3.获取cookie的名称
String name=cookies[i].getName();
if("lastAccess".equals(name)) {
//获取cookie的时间
lastTime=cookies[i].getValue();
}
}
//3.判段是否是首次访问,如果cookie里有时间,就不是第一次访问,否则就是第一次访问
if(lastTime==null) {
//第一次访问:
response.getWriter().print("first");
}else {//说明不是第一次访问
//把上次访问的时间回写到浏览器
response.getWriter().print("lasttime:"+lastTime);
}
//第三次,第四次---
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
String currentTime = format.format(date);
Cookie cookie = new Cookie("lastAccess",currentTime);
cookie.setMaxAge(60*60*10);
response.addCookie(cookie);

如果你遇到报错:

java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value

访问这里:​​javascript:void(0)​​3.Session对象
3.1 什么是session
session是一种会话管理技术,session用来保存会话过程中的数据,保存的数据存
储到服务器端。

session原理:基于cookie实现的,更确切地说时基于会话级别地cookie实现的。
3.2 HttpSession API
session常用方法:
[1].得到session的id(JESSIONID对应的值):getId();
[2].设置session的生命时长:setmaxInactiveInterval(int interval);
[3].销毁session:invalidate();
[4]得到session:HttpSession session=getSession();
session域对象:作用范围一次完整的会话(包含多个请求).
[1].存值:setAttribute(String key,Object obj);
[2].取值:Object obj=getAttribute(String key);
[3]移除值:removeAttribute(String key);

总结:域对象: request域对象 session域对象 servletContext域对象,作用范围依次变大
request域对象:作用范围一次请求,通常和转发操作配合使用
session域对象:作用范围一次会话,通常和重定向操作配合使用
servletContext域对象:作用范围整个项目,和重定向、转发操作都可以配合使用。
3.3 Session超时管理
session对象是有生命时长,它的默认存活时间是30分钟
具体配置找tomcat软件下/conf/web.xml文件

30

立即销毁session对象:invalidate();


标签:String,管理,对象,技术,会话,session,cookie,Cookie
From: https://blog.51cto.com/u_15961549/6054133

相关文章

  • 移动设备安全管理基础指南
    什么是移动安全管理(MSM)移动安全管理是指为保护企业中的移动设备和企业数据而采取的行动。这些操作可以进一步被归类为反应性的或主动的,基于该操作是在数据和设备被破坏之......
  • 基于SSM框架的校园迎新信息管理系统
    下载地址:​​程序源码点我​​文章目录​​校园迎新信息管理系统​​​​一、主要技术:​​​​二、需求分析:​​​​三、功能模块结构​​​​四、设计结果展示​​​​六......
  • BooksManagementSystem(图书管理系统)
    一、数据库创建数据库--添加数据库createdatabaseifnotexistsbms;创建表--创建user表createtable`user`(`id`int(11)notnullauto_incrementcomme......
  • 十年老程序员:再见了Navicat,以后多数据库管理就看这款SQL工具
    作为十年的老程序员,每天的工作都是跟各种数据库亲密接触。厂家自带数据库管理工具,无法管理这么多种数据库,还得找一款多数据库管理工具/SQL工具。以前还在读大学的时候,老......
  • 谈一谈大数据技术
     忽如一夜春风来,无人不谈大数据。大数据就像前两年的云计算一样,是一个时下被炒得很火的概念。那么什么是大数据,大数据是如何定义的,大数据处理技术有哪些,大数据能给我们带......
  • 低成本运维软件WGCLOUD - 主机分组管理介绍使用
    有时候我们主机比较多,不同的项目想进行分组管理WGCLOUD监测平台是支持分组的,不过默认没有启用该功能,只要修改个配置项就可以使用主机分组了在server/config/application.yml......
  • 天翼网关PT926E获取超级管理员账号
    因为家里搞了台NAS,蜗牛星际,因为安装的黑群辉,于是申请了公网IP,再用DDNS就可以随时公网访问NAS了。公网IP直接打10000号人工客服申请就行了,公网IP拿到了就需要将光猫模式......
  • 天翼网关PT926E获取超级管理员账号
    因为家里搞了台NAS,蜗牛星际,因为安装的黑群辉,于是申请了公网IP,再用DDNS就可以随时公网访问NAS了。公网IP直接打10000号人工客服申请就行了,公网IP拿到了就需要将光猫模式......
  • Vue接口地址管理
     项目中有些时候会调用不同的的环境接口地址,统一进行管理便于切换1.static文件夹下新建config.js:(static/目录下的文件并不会被Webpack处理:它们会直接被复制到最终......
  • 软件测试中的软件管理和测试流程
    软件测试管理正确的方式对公司的测试工作进行管理。而“正确的方式”就是在工作中不断摸索和改进后的管理方式,探索并发现这些方式也是测试管理工作的重要任务之一。......