Javaweb学习笔记第十四弹---对于Cookie和Filter的学习

Apache Tomcat - Tomcat Native Downloads

会话追踪技术

会话:打开浏览器,建立连接,直到一方断开连接,会话才会结束;在一次会议中,可以有多次请求。

会话追踪:在多次请求间,共享数据

实现方式:

1、客户端会话跟踪技术----Cookie
2、服务端会话跟踪技术----Session

Cookie

将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

基本使用

下面的网址,可以用来查找相关的插件代码,将其存储到pom.xml文件中
http://maven.apache.org/plugins/index.html

发送Cookie

1、创建Cookie对象,设置数据

Cookie cookie=new Cookie("username","zs");

2、发送Cookie到客户端,使用response对象

response.addCookie(cookie);

获取Cookie

1、获取客户端携带的所有Cookie,使用request对象

Cookie[] cookies=request.getCookies();

2、遍历数组,获取每一个Cookie对象:for

for(Cookie cookie:cookies){}

3、使用Cookie对象方法获取数据

String name=cookie.getName();
if("username".equals(name)){
cookie.getName();
cookie.getValue();
//输出
}

原理

Cookie的实现是基于**HTTP协议**的
响应头:set-cookie
请求头:cookie

Cookie存活时间:

默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁

持久化:setMaxAge:设置存活时间(单位:秒s)

正数:倒计时结束,Cookie自动删除
负数:默认值,关闭即销毁
零:立刻删除Cookie

Cookie存储中文:

注意:Cookie不能存储中文(可以进行转码操作)

举例:

//编码
URLEncoder.encode(value,"UTF-8");

//解码
URLDecoder.decode(value,"UTF-8");

Session

基本使用

//文件一
1、获取Session对象
HttpSession session=request.getSession();
2、存储数据
session.setAttribute("username","zs");

//文件二
3、获取Session对象
HttpSession session=request.getSession();
4、获取数据(从文件一中获取数据)
Object username=session.getSession("username");
System.out.println(username);

原理

Session是基于Cookie实现的

一次会话的多次请求之间,对象都是同一个(多个请求,地址都是同一个)

使用细节

Session钝化、活化:

钝化:服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中

活化:再次启动服务器后,从文件中加载数据到Session中

注意:Session不能够长时间存储相应数据;在打开浏览器一次并进行关闭操作后,再次打开同一文件的浏览器,其地址会发生改变

Session销毁:

1、默认情况下,无操作,30分钟后自动销毁

若是使用Session-config标签表示存储时间,单位(分钟minute)

2、调用Session对象的invalidate()方法(直接进行销毁)

session.invalidate();

Filter(接口、过滤器)

作用:拦截请求,从而实现特殊功能

快速入门

1、实现接口,并重写所有方法

2、配置拦截资源的路径---@WebServlet("")

3、放行,chain.函数();

我个人觉得,Filter和Servlet的结构有很大的相似之处

执行流程

1、放行后访问对应资源,资源访问完成后,仍会回到Filter中
2、再之后,执行的是**放行后逻辑**

注意:放行前,是对request数据的处理;放行后,是对response数据的处理

使用细节

Filter拦截路径配置:四种

1、指定某个具体路径
2、指定某个目录下的路径
3、指定为某个后缀名的路径
4、指定为所有路径

也可以实现过滤器链

posted @ 2022-10-01 17:54  yesyes1  阅读(69)  评论(0编辑  收藏  举报