TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构Servlet高级Cookie,Session,Filter,Listener脑图思维导图

Servlet高级Cookie,Session,Filter,Listener脑图思维导图

  收藏
  分享
免费下载
免费使用文件
灰色と青 浏览量:42023-11-30 19:58:40
已被使用0次
查看详情Servlet高级Cookie,Session,Filter,Listener脑图思维导图

Servlet高级Cookie,Session,Filter,Listener内容讲解

树图思维导图提供 Servlet高级Cookie,Session,Filter,Listener脑图 在线思维导图免费制作,点击“编辑”按钮,可对 Servlet高级Cookie,Session,Filter,Listener脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:c99bae42249f258910e94642f0475a7e

思维导图大纲

Servlet高级-Cookie,Session,Filter,Listener思维导图模板大纲

Cookie

应用场景

记住密码,自动登录,浏览记录,购物车

为什么要有这个Cookie

http的请求是无状态的。客户端与服务器在通讯的时候,是无状态的,其实就是客户端在第二次来访的时候 服务器根本就不直到这个客户段之前有没有来访问过, 为了更好的用户体验,更好的交互,就是为了更好的手机用户习惯

cookie的优缺点

优点

1:极高的扩展性和可用性 2:通过良好的编程控制保存在cookie中的sessin对象的大小, 3:通过加密和安全传输技术(SSL),减少cookie被破解的可能性。 4:只在cookie中存放不敏感数据,即使被盗也不会有重大损失。

缺点

1:Cookie数量和长度的限制 ,每个localhost最多只能由20条cookie,每个cookie长度不能超过4kb,否则会被截掉。 2:安全性问题 ,如果cookie被人拦截了,那个人就可以获取所有的session信息 3:有些状态不可能保存在客户端。 为了防止重复提交表单,我们需要在服务器端保存一个计数器,

Cookie怎么用

添加cookie给客户端

Cookie cookie=new Cookie("name","张三“); resp.addCookie(cookie);

出现中文乱码情况

获取客户端带过来的cookie

可以在servlet中使用request对应来获取cookie

清除Cookie

Cookie没有提供delete方法,我们要删除需要设置maxAge 为0 。

其他常用方法

案例实现记住密码功能

1. 用户打开网站后,自动读取Cookie中存储的用户名、密码 2. 如果存在,自动填充到表单中 3. 如果不存在,说明是第一次登录,需要登录后在后台将用户名、密码写入Cookie中,以便下 次登录时自动填充 导入资料中的login.html LoginServlet.java

Cookie总结:

1.服务器给客户端发送过来的一份小数据,并且存放在客户端上。

2.获取cookie request.getCookie();

3.添加cookie response.addCookie(cookie);

4.Cookie有效时间 1.会话Cookie 默认情况下,关闭了浏览器,那么cookie就会消失 这是默认的行为,但是大部分现代的浏览器都不会这么做,比如chrome浏览器, 默认打开时会恢复上次关闭时的状态,所以关闭浏览器cookie并不会失效。 我们 可以设置浏览器打开时不恢复上次状态,改为打开新的标签页即可 2.持久Cookie 通过设置MaxAAge指定存活时间,在存活时间内,都有效,并且会保存在客户端上。 cookie.setMaxAge(0); //设置立即删除 cookie.setMaxAge(100); //100 秒

6.Cookie存储中文可以使用URLEncoder.encode转码后再进行存储

Session

Session概述

会话,在Java中是一种服务端会话技术,Session是基于Cookie的一种会话机制, 区别在于Cookie是将数据存储的客户端, 而Session时将数据存储在服务端 Session本质上也是采用客户端会话技术,只不过交给Cookie存储在客户端的是Session的一个标识, 而数据是存储在服务端的一i个内存对象中的,每次请求通过Cookie将Session的唯一标识传递给服务端, 然后服务端根据唯一标识自动到内存中找到对应的Session的队友,然后再将数据获取出来。

Session使用场景

session经常作为作用域被用来存储当前登录用户的数据,在同一次会话中,可以实现再多个操作中判断用户是否登录

Session的优缺点

1:占用服务器资源: session的优点很多,但是他的缺点,极大的提高服务器成本 2:没有分布式架构,无法支持横向扩展 3:保存下来各种形式的,不方便 4:过多使用导致代码不可读,不可维护 5:session常用来文件存储,性能不好

常用API

得到会话id

String id=session.getId();

存值

session.setAttribute(name,value);

取值

session.getAAttribute(name);

移除值

session.removeAttribute(name);

销毁session

session.invalidate();

设置session的有效期,session默认的有效期是30分钟(不在发送请求,不再进行访问),

session.setMaxInactiveInterval(60*60*12);

Session的创建和销毁

创建

获取Session中的数据

销毁和移除Session中的数据

Filter(过滤器)

Filter过滤器概述

过滤器,其实就是对客户端发出来的请求进行过滤。 浏览器发出,然后服务器派servlet处理。 这中间就需要使用过滤,其实过滤器起到的是拦截的作用。 过滤器采用了链式结构,如下图示意:

应用场景Filter

1:对一些敏感词汇进行过滤; 2:统一设置编码; 3:自动登录; .....

如何使用Filter

Filter的生命周期

创建

销毁

示例

使用Filter+Session实现未登录判断,及请求编码设置

Listener(监听器)

Listener概述

Listener意味监听器,用来当发生某种事件以后,通知我们的程序做某种操作,和JS中的事件有点类似。 监听器的内部机制其实就是接口回调。

监听器的分类

3. 监听器的用法

相关思维导图模板

外科休克思维脑图思维导图

树图思维导图提供 外科休克思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 外科休克思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:57a4859ddd5cb029d04a41e4a461013e

Kubernetes各小组件及功能脑图思维导图

树图思维导图提供 Kubernetes各小组件及功能脑图 在线思维导图免费制作,点击“编辑”按钮,可对 Kubernetes各小组件及功能脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a0b4b67da9c5a2c14d6f0407da802125