Java Servlet

目录

1. Web

1.1 软件架构

1.2 资源分类

1.3 Web服务器软件

1.4 Tomcat

2. Servlet

2.1 概念

2.2 快速入门

2.3 Servlet 3.0

2.4 前端跳转 Servlet

2.5 Servlet 相关配置

 3. HTTP

4. Request

4.1 请求消息数据格式

4.1.1 请求行

4.1.2 请求头部(Headers)

4.1.3 请求空行

4.1.4 请求体(Body)

4.2 ServletRequest 接口

4.2.1 获取请求行信息

4.2.2 获取请求头信息

4.2.3 获取请求参数

4.2.4 乱码问题

4.2.5 请求转发

4.2.6 共享数据

 5. Response

5.1 响应消息数据格式

5.1.1 响应行

5.1.2 响应头

5.1.3 响应空行

5.1.4 响应体

5.2 重定向

5.3 forward 和 redirect 区别


1. Web

1.1 软件架构

  1. C/S(客户端/服务器端)

    • 需要安装客户端应用。
  2. B/S(浏览器/服务器端)

    • 不需要安装客户端应用,用户只需记住域名即可访问。
    • 高效且客户端零维护。

1.2 资源分类

  1. 静态资源

    • 所有用户访问后得到的结果相同。
    • 可直接被浏览器解析。
    • 例如:HTML、CSS、JavaScript。
  2. 动态资源

    • 每个用户访问相同资源后,得到的结果可能不同。
    • 访问后需要转换为静态资源再返回给浏览器。
    • 例如:Servlet/JSP、PHP、ASP等。

1.3 Web服务器软件

  1. 服务器

    • 安装了服务器软件的计算机。
    • 根据IP地址,其他主机可以访问服务器并获取数据。
    • 服务器软件:接收用户请求,处理请求,做出响应。
    • Web服务器软件:接收用户请求,处理请求,做出响应。
    • 在Web服务器软件中,可以部署Web项目,让用户通过浏览器访问。
  2. 常见的Java相关Web服务器软件

    • WebLogic:Oracle公司,大型JavaEE服务器,支持所有JavaEE规范,收费。
    • WebSphere:IBM公司,大型JavaEE服务器,支持所有JavaEE规范,收费。
    • JBOSS:JBOSS公司,大型JavaEE服务器,支持所有JavaEE规范,收费。
    • Tomcat:Apache基金会,中小型JavaEE服务器,仅支持部分JavaEE规范(Servlet/JSP),开源免费。
  3. JavaEE

    • Java语言在企业级开发中使用的技术规范总和。
    • 共规定了13项大的规范。

1.4 Tomcat

Tomcat是一种Web服务器软件。

  1. 下载

    访问 Apache Tomcat官网 下载。
  2. 安装

    解压压缩包即可。(安装目录建议不要有中文和空格)
  3. 启动

    运行 startup.bat(Windows)或 startup.sh(Linux/Mac)。
  4. 停止

    运行 shutdown.bat(Windows)或 shutdown.sh(Linux/Mac)。

2. Servlet

2.1 概念

  • Servlet 是运行在服务器端的小程序,即 server applet
  • Servlet 是一个接口,定义了 Java 类被浏览器访问的规则。
  • 实现 Servlet 接口的类,需要复写接口中的方法。

2.2 快速入门

  1. 创建 JavaEE 项目

  2. 导入依赖

    <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version>
    </dependency>
  3. 定义一个类,实现 Servlet 接口

    public class ServletDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) {System.out.println("doGet");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) {System.out.println("doPost");}
    }
  4. 在 web.xml 中配置

    <web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>login</servlet-name><servlet-class>com.codingfuture.ServletDemo1</servlet-class></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
    </web-app>

2.3 Servlet 3.0

支持注解配置,可以不需要配置 web.xml。

步骤

  1. 创建 JavaEE 项目
  2. 定义一个类,实现 Servlet 接口
  3. 重写方法
  4. 在类上使用 @WebServlet 注解,进行配置

代码示例

@WebServlet(urlPatterns = "/demo1")
@WebServlet(value = "/demo2")
@WebServlet(name = "/demo3")
@WebServlet("/demo4")

2.4 前端跳转 Servlet

HTML 表单:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="/servlet4" method="get"><input name="username"><input type="submit" value="提交">
</form></body>
</html>

Servlet 代码:

@WebServlet("/servlet4")
public class Servlet4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) {System.out.println("doGet");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) {System.out.println("doPost");}
}

2.5 Servlet 相关配置

urlPattern: Servlet 访问路径

  • 一个 Servlet 可以定义多个访问路径:@WebServlet({"/d4","/dd4","/ddd4"})
  • 路径定义规则:
    • /xxx:路径匹配
    • /xxx/xxx: 多层路径,目录结构
    • *.do:扩展名匹配
@WebServlet({"/d2", "/dd2", "/ddd2"}) // 都可以访问到
@WebServlet("/demo2/user") // 多层路径
@WebServlet("/demo2/*") // 通配符,*任意字符
@WebServlet("*.do") // 任意字符.do 访问

 3. HTTP

HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于从网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式以及传输数据的规则。

HTTP 基于 TCP/IP 协议,是一个应用层协议,它使用 TCP 作为其传输层协议。HTTP 协议的主要特点包括:

  1. 无状态协议:服务器不会保存关于客户端请求的任何信息,每个请求都是独立的。
  2. 请求-响应模型:客户端发起请求,服务器响应请求,一次请求对应一次响应
  3. 支持多种媒体类型:HTTP 可以传输文本、图片、视频等多种类型的数据。
  4. 简单快速:HTTP 协议格式简单,易于实现,且传输速度快。
  5. 默认端口号是80

HTTP 请求和响应都包含头部(Headers)和可选的主体(Body)。请求头部包含请求的方法(如 GET、POST)、目标资源的 URI、协议版本等信息;响应头部则包含状态码、服务器信息等。

4. Request

4.1 请求消息数据格式

4.1.1 请求行

请求行包含三个部分:HTTP 方法、请求的资源路径(URI)和HTTP版本。

方法 请求URI HTTP版本
GET /index.html HTTP/1.1

4.1.2 请求头部(Headers)

请求头部包含一系列的键值对,用来提供关于请求的附加信息,如客户端信息、请求体的内容类型等。

常见的请求头部

  • Host:指定请求的服务器的域名和端口号。
  • User-Agent:包含了发出请求的用户代理软件信息。
  • Accept:告知服务器客户端能够接收哪些类型的信息。
  • Accept-Language:告知服务器客户端偏好的语言。
  • Accept-Encoding:告知服务器客户端能够接受的压缩格式。
  • Content-Type:当发送包含body的请求时,指定body的媒体类型。
  • Content-Length:当发送包含body的请求时,指定body的长度。
  • Connection:指定或要求服务器的连接状态。
头部字段名: 值
头部字段名: 值
...
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 43
Connection: keep-alive

4.1.3 请求空行

请求空行是一个额外的行,仅包含一个回车换行符(CRLF),没有其他内容。它的作用是明确地分隔请求头部和请求体。

\r\n

4.1.4 请求体(Body)

请求体通常用于POST和PUT请求,用来发送需要被服务器处理的数据。请求体的内容类型由Content-Type头部字段指定。

name=JohnDoe&age=25

4.2 ServletRequest 接口

        ServletRequest接口是Java Servlet API中的一个接口,用于访问Servlet容器接收到的HTTP请求的信息。ServletRequest接口定义了一系列方法,用于获取HTTP请求的参数、属性、输入流等信息,以及对这些信息的操作。

        ServletRequest接口提供了访问HTTP请求的各种信息和操作的方法,方便在开发中获取HTTP请求的相关参数和属性。在实际开发中,我们通常会使用HttpServletRequest接口,它继承了ServletRequest接口,并增加了更多HTTP特定的请求和响应信息的方法。

4.2.1 获取请求行信息

        HTTP 请求的请求行中包含请求方法、请求资源名、请求路径等信息,HttpServletRequest 接口定义了一系列获取请求行信息的方法,如下表。

返回值类型方法声明描述
StringgetMethod()该方法用于获取 HTTP 请求方式(如 GET、POST 等)。
StringgetRequestURI()该方法用于获取请求行中的资源名称部分,即位于 URL 的主机和端口之后,参数部分之前的部分。
StringgetQueryString()该方法用于获取请求行中的参数部分,也就是 URL 中“?”以后的所有内容。
StringgetContextPath()返回当前 Servlet 所在的应用的名字(上下文)。对于默认(ROOT)上下文中的 Servlet,此方法返回空字符串""。
StringgetServletPath()该方法用于获取 Servlet 所映射的路径。
StringgetRemoteAddr()该方法用于获取客户端的 IP 地址。
StringgetRemoteHost()该方法用于获取客户端的完整主机名,如果无法解析出客户机的完整主机名,则该方法将会返回客户端的 IP 地址。

4.2.2 获取请求头信息

        当浏览器发送请求时,需要通过请求头向服务器传递一些附加信息,例如客户端可以接收的数据类型、压缩方式、语言等。为了获取请求头中的信息, HttpServletRequest 接口定义了一系列用于获取 HTTP 请求头字段的方法,如下表所示。

返回值类型方法声明描述
StringgetHeader(String name)该方法用于获取一个指定头字段的值。
如果请求消息中包含多个指定名称的头字段,则该方法返回其中第一个头字段的值。
EnumerationgetHeaders(String name)该方法返回指定头字段的所有值的枚举集合,
在多数情况下,一个头字段名在请求消息中只出现一次,但有时可能会出现多次。
EnumerationgetHeaderNames()该方法返回请求头中所有头字段的枚举集合。
StringgetContentType()该方法用于获取 Content-Type 头字段的值。
intgetContentLength()该方法用于获取 Content-Length 头字段的值 。
StringgetCharacterEncoding()该方法用于返回请求消息的字符集编码 。

4.2.3 获取请求参数

        在实际开发中,我们经常需要获取用户提交的表单数据,例如用户名和密码等。为了方便获取表单中的请求参数,ServletRequest 定义了一系列获取请求参数的方法,如下表所示。

返回值类型方法声明功能描述
String getParameter(String name)返回指定参数名的参数值。
String [ ] getParameterValues (String name)以字符串数组的形式返回指定参数名的所有参数值(HTTP 请求中可以有多个相同参数名的参数)。
Enumeration getParameterNames()以枚举集合的形式返回请求中所有参数名。
Map getParameterMap()用于将请求中的所有参数名和参数值装入一个 Map 对象中返回。

4.2.4 乱码问题

        Tomcat8解决了get请求乱码,但post请求仍会乱码

        乱码的原因:POST 提交的数据在请求体中,其所使用的编码格式时页面一致(即 utf-8)。request 对象接收到数据之后,会将数据放到 request 缓冲区,缓冲区的默认字符集是 ISO-8859-1(该字符集不支持中文),两者使用的字符集不一致导致乱码。

//修改request缓冲区的字符集为UTF-8
request.setCharacterEncoding("utf-8");

4.2.5 请求转发

        请求转发是指将一个HTTP请求从一个Servlet转发到另一个Servlet或JSP页面的过程。它允许在Web应用程序中的不同组件之间共享请求和响应对象,从而实现模块化的代码和更好的代码重用。

  1. 客户端发送一个HTTP请求到Web服务器。

  2. Web服务器将请求路由到相应的Servlet。

  3. Servlet通过getRequestDispatcher()方法获取RequestDispatcher对象。

  4. Servlet使用RequestDispatcher对象的forward()方法将请求转发到另一个Servlet或JSP页面。

  5. 目标Servlet或JSP页面处理请求并生成响应。

  6. Web服务器将响应发送回客户端。

  7. 客户端收到响应并显示结果。

特点

  1. 浏览器地址栏路径不发生变化

  2. 只能转发到当前服务器内部资源中。

  3. 请求转发是一次请求

4.2.6 共享数据

  • 域对象:一个有作用范围的对象,可以在范围内共享数据

  • request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

  • 方法:

    1. void setAttribute(String name,Object obj):存储数据

    2. Object getAttitude(String name):通过键获取值

    3. void removeAttribute(String name):通过键移除键值对

Servlet三大域对象:request、session、ServletContext,是Java Web开发中用于存储和传递信息的重要机制。

  1. ServletContext

    • 定义:ServletContext是应用级的对象,它在服务器启动时创建,在服务器关闭时销毁。
    • 作用范围:全局的,对所有用户和所有请求都是可见的。
    • 属性:存储在ServletContext中的属性,一旦设置,可以被应用中的所有用户和所有请求访问。
    • 使用方法
      ServletContext servletContext = this.getServletContext();
      servletContext.setAttribute("name", "zhangsan");
  2. request

    • 定义:request对象代表一个客户端的请求,每个请求都会创建一个新的request对象。
    • 作用域:仅限于当前请求,请求结束后,该对象就会被销毁。
    • 用途:常用于在一次请求的多个页面之间传递参数。
    • 使用方法
      request.setAttribute("attributeName", "value");
  3. session

    • 定义:session对象代表用户的会话,从用户打开浏览器开始,直到关闭浏览器结束。
    • 作用域:每个用户都有一个独立的session对象,用于跟踪用户的状态。
    • 用途:常用于需要用户登录验证的Web应用中,用于存储用户登录状态和个性化信息。
    • 使用方法
      HttpSession session = request.getSession();
      session.setAttribute("attributeName", "value");

 5. Response

5.1 响应消息数据格式

HTTP响应是服务器发送给客户端的数据,它包括以下几个部分:

  • 请求消息:客户端发送给服务器的数据。

    • 数据格式包括请求行、请求头、请求空行和请求体。
  • 响应消息:服务器发送给客户端的数据。

    • 数据格式包括响应行、响应头、响应空行和响应体。

5.1.1 响应行

响应行由协议/版本、响应状态码和状态码描述组成,例如:

HTTP/1.1 200 OK
  • 响应状态码:服务器通过状态码告诉客户端请求的处理结果。
    • 1xx:信息性状态码,表示服务器已接收到请求,需要客户端继续执行操作。
      • 例如:100 Continue(继续请求)
    • 2xx:成功状态码,表示请求已成功被服务器接收、理解、并接受。
      • 例如:200 OK(请求成功)
    • 3xx:重定向状态码,表示需要客户端采取进一步操作才能完成请求。
      • 例如:302 Found(临时重定向)、304 Not Modified(未修改,使用缓存)
    • 4xx:客户端错误状态码,表示请求包含语法错误或无法完成请求。
      • 例如:404 Not Found(未找到)、405 Method Not Allowed(方法不允许)
    • 5xx:服务器错误状态码,表示服务器在处理请求的过程中发生了错误。
      • 例如:500 Internal Server Error(内部服务器错误)

5.1.2 响应头

响应头包含了关于服务器和响应的元数据,格式如下:

头名称:值

常见的响应头包括:

Content-Type: text/html;charset=utf-8

5.1.3 响应空行

响应空行是一个额外的行,仅包含一个回车换行符(CRLF),没有其他内容。它的作用是明确地分隔响应头部和响应体。

\r\n

5.1.4 响应体

响应体是服务器传输给前端的数据,通常是HTML文档、图片、JSON等格式的数据。

HTTP/1.1 200 OK             
Content-Type: text/html;charset=UTF-8 
Content-Length: 101
Date: Thu, 17 Sep 2020 02:59:05 GMT
Location: /servletB我是response

5.2 重定向

重定向是资源跳转的一种方式,可以通过以下方式实现:

  1. 设置状态码为302。
    response.setStatus(302);
  2. 设置响应头location
    response.setHeader("location", "/Day03/responseServlet02");
  3. 使用简单的重定向方法。
    response.sendRedirect("/Day03/responseServlet02");
@WebServlet("/test ")
public class test extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 重定向到/responseServlet02response.sendRedirect("/xx/test2");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

5.3 forward 和 redirect 区别

  1. 重定向(redirect)

    • 地址栏发生变化。
    • 可以访问其他站点的资源。
    • 是两次请求,不能使用request对象共享数据。
  2. 转发(forward)

    • 地址栏路径不变。
    • 只能访问当前服务器下的资源。
    • 是一次请求,可以使用request对象共享数据。

注意

  • 不能使用重定向来访问request域中的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438319.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用百度文心智能体创建多风格表情包设计助手

文章目录 一、智能定制&#xff0c;个性飞扬二、多元风格&#xff0c;创意无限 百度文心智能体平台为你开启。百度文心智能体平台&#xff0c;创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台&#xff0c;集成了先进的自然语言处理技术和人工智能技术&…

C++ STL 初探:打开标准模板库的大门

文章目录 C STL 初探&#xff1a;打开标准模板库的大门前言第一章: 什么是STL&#xff1f;1.1 标准模板库简介1.2 STL的历史背景1.3 STL的组成 第二章: STL的版本与演进2.1 不同的STL版本2.2 STL的影响与重要性 第三章: 为什么学习 STL&#xff1f;3.1 从手动编写到标准化解决方…

C++网络编程之TCP协议

概述 TCP&#xff0c;即传输控制协议&#xff0c;英文全称为Transmission Control Protocol&#xff0c;是互联网协议套件中的核心协议之一。它工作在OSI七层模型的传输层&#xff0c;也工作在TCP/IP四层模型的传输层。TCP协议的主要目的是&#xff1a;在不可靠的网络环境中提供…

腾讯一面-LRU缓存

为了设计一个满足LRU&#xff08;最近最少使用&#xff09;缓存约束的数据结构&#xff0c;我们可以使用哈希表&#xff08;HashMap&#xff09;来存储键值对&#xff0c;以便在O(1)时间复杂度内访问任意键。同时&#xff0c;我们还需要一个双向链表&#xff08;Doubly Linked …

飞创龙门双驱XYZ直线模组高精度应用实例

飞创龙门双驱XYZ直线模组集超精密定位、高动态响应和灵活配置于一体&#xff0c;适用于电子制造行业&#xff08;点胶、组装、检测&#xff09;、半导体圆晶加工、芯片封装、激光切割、激光焊接、数控机床、精密检测及科研实验等&#xff0c;满足高精度、高动态的三维定位需求&…

NVIDIA Hopper 架构深入

在 2022 年 NVIDIA GTC 主题演讲中,NVIDIA 首席执行官黄仁勋介绍了基于全新 NVIDIA Hopper GPU 架构的全新 NVIDIA H100 Tensor Core GPU。 文章目录 前言一、NVIDIA H100 Tensor Core GPU 简介二、NVIDIA H100 GPU 主要功能概述1. 新的流式多处理器 (SM) 具有许多性能和效率…

Golang | Leetcode Golang题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; func findMinArrowShots(points [][]int) int {if len(points) 0 {return 0}sort.Slice(points, func(i, j int) bool { return points[i][1] < points[j][1] })maxRight : points[0][1]ans : 1for _, p : range points {if p[0] > …

docker下载mysql时出现Unable to pull mysql:latest (HTTP code 500) server error 问题

报错 Unable to pull mysql:latest (HTTP code 500) server error - Get “https://registry-1.docker.io/v2/”: EOF 解决方法 将VPN开到Global模式 解决啦

从面向过程(pop)到面向对象(oop)

文章目录 1. 情境2. 抛出问题3. 给出解决方案4. 方案存在的bug5. 补救措施6. 得出结论&#xff1a;该方案实际是不可行的7. 总结上述代码思考方式 -- 基于过程① 思考方式② 上述思考方式存在的问题基于过程的思维方式核心基于过程的思维方式的缺点 8. 转变思维&#xff0c;引出…

无水印短视频素材下载网站有哪些?十个高清无水印视频素材网站分享

你知道怎么下载无水印视频素材吗&#xff1f;今天小编就给大家推荐十个高清无水印视频素材下载的网站&#xff0c;如果你也是苦于下载高清无水印的短视频素材&#xff0c;赶紧来看看吧&#xff5e; 1. 稻虎网 首推的是稻虎网。这个网站简直就是短视频创作者的宝库。无论你需要…

深度学习基础—残差网络ResNets

1.残差网络结构 当网络训练的很深很深的时候&#xff0c;效果是否会很好&#xff1f;在这篇论文中&#xff0c;作者给出了答案&#xff1a;Deep Residual Learning for Image Recognitionhttps://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/He_Deep_Residual_…

OpenAI o1 与 GPT-4o:前沿AI全面比较下你更倾向哪一款

前言 就在前不久&#xff0c;OpenAI 发布了推理能力更强可达理科博士生水准的o1 模型&#xff0c;业界也表示这标志着人工智能发展的新里程碑&#xff0c;特别是在复杂问题解决和推理方面。 然而&#xff0c;该模型与其前身GPT-4o有很大不同&#xff0c;后者仍然广泛用于通用…

Pix2Pix实现图像转换

tutorials/application/source_zh_cn/generative/pix2pix.ipynb MindSpore/docs - Gitee.com Pix2Pix概述 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c;该模型是由Ph…

HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例

HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例 在某地市的 XX 音乐节保障准备期间&#xff0c;为确保活动期间的网络质量&#xff0c;现场新开了 4.9G HUAWEI 室外基站。在网络优化和测试中&#xff0c;发现UE无法实现从 2.6G 到 4.9G 的正常切换。虽然现场具备 4.9G信号覆…

Python | Leetcode Python题解之第448题找到所有数组中消失的数字

题目&#xff1a; 题解&#xff1a; class Solution:def findDisappearedNumbers(self, nums: List[int]) -> List[int]:n len(nums)for num in nums:x (num - 1) % nnums[x] nret [i 1 for i, num in enumerate(nums) if num < n]return ret

YOLOv8 结合设计硬件感知神经网络设计的高效 Repvgg的ConvNet 网络结构 ,改进EfficientRep结构

一、理论部分 摘要—我们提出了一种硬件高效的卷积神经网络架构,它具有类似 repvgg 的架构。Flops 或参数是评估网络效率的传统指标,这些网络对硬件(包括计算能力和内存带宽)不敏感。因此,如何设计神经网络以有效利用硬件的计算能力和内存带宽是一个关键问题。本文提出了一…

1、Spring Boot 3.x 集成 Eureka Server/Client

一、前言 基于 Spring Boot 3.x 版本开发&#xff0c;因为 Spring Boot 3.x 暂时没有正式发布&#xff0c;所以很少有 Spring Boot 3.x 开发的项目&#xff0c;自己也很想了踩踩坑&#xff0c;看看 Spring Boot 3.x 与 2.x 有什么区别。自己与记录一下在 Spring Boot 3.x 过程…

exe4j安装使用教程

A-XVK258563F-1p4lv7mg7sav A-XVK209982F-1y0i3h4ywx2h1 A-XVK267351F-dpurrhnyarva A-XVK204432F-1kkoilo1jy2h3r A-XVK246130F-1l7msieqiwqnq A-XVK249554F-pllh351kcke50

第5篇:MySQL日志分析----应急响应之日志分析篇

常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析&#xff0c;可以发现攻击行为&#xff0c;进一步还原攻击场景及追溯攻击源。 0x01 Mysql日志分析 general query log能记录成功连接和每次执行的查询&#xff0c;我们可以将它用作安全布防…