我是南城余!阿里开发者平台专家博士证书获得者!

欢迎关注我的博客!一同成长!

一名从事运维开发worker记录分享学习

专注于AI,运维开发,windows Linux 系统领域分享

章节对应知识库

会话_过滤_监听器 · 语雀 

cookie

cookie是一种客户端会话技术,cookie服务端产生,它是服务器存放浏览器的一小份数据,浏览器以后每次访问服务器时候都会将这小份数据携带到服务器去。

session

HttpSession是一种保留更多信息服务端的一种技术,服务器会为每一个客户端开辟一块内存空间,即session对象. 客户端在发送请求时,都可以使用自己session. 这样服务端就可以通过session记录某个客户端的状态

三大对象

对象: 一些用于存储数据传递数据对象,传递数据不同范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据范围不同

三大存放

过滤器

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次

监听器

监听器:专门用于对域对象对象身上发生的事件状态改变进行监听和相应处理的对象

监听器分类

  • 按监听的事件分
    • 域对象的创建和销毁监听器 ServletContextListener   HttpSessionListener   ServletRequestListener
    • 域对象数据增删改事件监听器 ServletContextAttributeListener  HttpSessionAttributeListener   ServletRequestAttributeListener
    • 其他监听器  HttpSessionBindingListener  HttpSessionActivationListener

Ajax

<script>
  function loadXMLDoc(){
    var xmlhttp=new XMLHttpRequest();
      // 设置回调函数处理响应结果
    xmlhttp.onreadystatechange=function(){
      if (xmlhttp.readyState==4 &amp;&amp; xmlhttp.status==200)
      {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
      }
    }
      // 设置请求方式和请求的资源路径
    xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
      // 发送请求
    xmlhttp.send();
  }
</script> 

if (xmlhttp.readyState==4 &amp;&amp; xmlhttp.status==200)

在JavaScript中,XMLHttpRequest对象的readyState属性表示请求的状态,它可以取以下五种值:

0: 未初始化(`XMLHttpRequest` 对象已经创建,但是 `open()` 方法还未被调用)。

1: 启动(`open()` 方法已经被调用)。

2: 发送(`send()` 方法已经被调用,并且头部状态已经可获得)。

3: 接收下载中,`responseText` 属性已经包含部分数据)。

4: 完成(数据接收完毕,整个数据传输过程结束)。

这些状态可以帮助你在使用XMLHttpRequest对象时了解请求的进展情况。

原文地址:https://blog.csdn.net/m0_63031112/article/details/134799102

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43212.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注