我是南城余!阿里云开发者平台专家博士证书获得者!
欢迎关注我的博客!一同成长!
一名从事运维开发的worker,记录分享学习。
专注于AI,运维开发,windows Linux 系统领域的分享!
本章节对应知识库
会话_过滤_监听器 · 语雀
cookie是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。
HttpSession是一种保留更多信息在服务端的一种技术,服务器会为每一个客户端开辟一块内存空间,即session对象. 客户端在发送请求时,都可以使用自己的session. 这样服务端就可以通过session来记录某个客户端的状态了
域对象: 一些用于存储数据和传递数据的对象,传递数据不同的范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据的范围也不同
三大域存放
请求域内一般放本次请求业务有关的数据,如:查询到的所有的部门信息
会话域内一般放本次会话的客户端有关的数据,如:当前客户端登录的用户
应用域内一般放本程序应用有关的数据 如:Spring框架的IOC容器
Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一
过滤器开发中应用的场景
package com.atguigu.filters;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class LoggingFilter implements Filter {
private SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 参数父转子
HttpServletRequest request =(HttpServletRequest) servletRequest;
HttpServletResponse response =(HttpServletResponse) servletResponse;
// 拼接日志文本
String requestURI = request.getRequestURI();
String time = dateFormat.format(new Date());
String beforeLogging =requestURI+"在"+time+"被请求了";
// 打印日志
System.out.println(beforeLogging);
// 获取系统时间
long t1 = System.currentTimeMillis();
// 放行请求
filterChain.doFilter(request,response);
// 获取系统时间
long t2 = System.currentTimeMillis();
// 拼接日志文本
String afterLogging =requestURI+"在"+time+"的请求耗时:"+(t2-t1)+"毫秒";
// 打印日志
System.out.println(afterLogging);
}
}
阶段 |
对应方法 |
执行时机 |
执行次数 |
创建对象 |
构造器 |
web应用启动时 |
1 |
初始化方法 |
void init(FilterConfig filterConfig) |
构造完毕 |
1 |
过滤请求 |
void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) |
每次请求 |
多次 |
销毁 |
default void destroy() |
web应用关闭时 |
1次 |
监听器:专门用于对域对象对象身上发生的事件或状态改变进行监听和相应处理的对象
监听器的分类
if (xmlhttp.readyState==4 && xmlhttp.status==200)
在JavaScript中,XMLHttpRequest对象的readyState属性表示请求的状态,它可以取以下五种值:
0: 未初始化(`XMLHttpRequest` 对象已经创建,但是 `open()` 方法还未被调用)。
1: 启动(`open()` 方法已经被调用)。
2: 发送(`send()` 方法已经被调用,并且头部和状态已经可获得)。
3: 接收(下载中,`responseText` 属性已经包含部分数据)。
4: 完成(数据接收完毕,整个数据传输过程结束)。
这些状态可以帮助你在使用XMLHttpRequest对象时了解请求的进展情况。