style: fmt code

This commit is contained in:
ReaJason
2026-04-26 20:39:53 +08:00
parent d9733e1512
commit a8fb030a60
150 changed files with 948 additions and 1522 deletions
@@ -8,4 +8,4 @@ title: Apusic AS
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
+1 -1
View File
@@ -6,4 +6,4 @@ title: BES
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -6,4 +6,4 @@ title: GlassFish
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: InforSuite AS
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -6,4 +6,4 @@ title: JBoss
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: Jetty
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: Resin
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: Tomcat
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: TongWeb
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -6,4 +6,4 @@ title: Undertow
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: WebLogic
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
@@ -8,4 +8,4 @@ title: WebSphere
## 动态添加 Filter
## 动态添加 Listener
## 动态添加 Listener
+1 -1
View File
@@ -63,7 +63,7 @@ public interface Filter {
shell 的目的,就是为了定义一个入口,我们能与 Web 服务器进行交互。在 Filter 中我们就是实现 doFilter 来满足需求,以下定义了一个命令回显的 FilterShell。
1. 一般而言,我们会为 FilterShell 注册 url-pattern 为 `/*`,这样无论访问哪个路径都能被调用到,而且为了绕过登录过滤器,我们会把 FilterShell 注册为 FilterChain 中的第一个过滤器。
1. 一般而言,我们会为 FilterShell 注册 url-pattern 为 `/*`,这样无论访问哪个路径都能被调用到,而且为了绕过登录过滤器,我们会把 FilterShell 注册为 FilterChain 中的第一个过滤器。
2. 交互的入口是 `request.getParameter` 支持两种方式传参。GET/POST 请求发送 `/?paramName=whoami`,也可以发送 POST 请求时使用 `application/x-www-form-urlencoded` 发送 body 参数。`multipart/form-data` 是不支持从 `request.getParameter` 获取参数的。
3. 当 Filter 注册的 url-pattern 为 `/*` 时,我们拿到 cmd 参数,就可以执行命令并填充响应对象 `return` 结束请求,而在拿不到参数的时候就必须调用 `chain.doFilter(servletRequest, servletResponse)`,否则正常的业务就不会被执行。
+9 -12
View File
@@ -11,18 +11,15 @@ title: Java Servlet 规范内存马
## Servlet 三大 Web 组件
<Cards>
<Card
href="/docs/servlet/servlet"
title="Servlet 内存马"
>创建独特的 entrypoint 访问路径</Card>
<Card
href="/docs/servlet/filter"
title="Filter 内存马"
>过滤器,遇事不决写点特别的东西然后中断请求</Card>
<Card
href="/docs/servlet/listener"
title="Listener 内存马"
>监听器,请求创建时触发,拿请求体和响应体做不该做的事情</Card>
<Card href="/docs/servlet/servlet" title="Servlet 内存马">
创建独特的 entrypoint 访问路径
</Card>
<Card href="/docs/servlet/filter" title="Filter 内存马">
过滤器,遇事不决写点特别的东西然后中断请求
</Card>
<Card href="/docs/servlet/listener" title="Listener 内存马">
监听器,请求创建时触发,拿请求体和响应体做不该做的事情
</Card>
</Cards>
## ServletContext
+12 -12
View File
@@ -6,18 +6,18 @@ title: Listener
Servlet 事件监听器支持当 ServletContext、HttpSession 和 ServletRequest 状态变更时发送事件通知。每个事件类型的监听器都支持多个,并且开发者可以指定监听器的调用顺序。
| Listener 接口类 | 描述 |
|--------------------------------------------------|---------------------------------|
| javax.servlet.ServletContextListener | 在 ServletContext 创建以及销毁时 |
| javax.servlet.ServletContextAttributeListener | 在 ServletContext 添加、移除或替换属性时 |
| javax.servlet.http.HttpSessionListener | 在 HttpSession 创建和销毁时 |
| javax.servlet.http.HttpSessionAttributeListener | 在 HttpSession 上添加、移除或替换属性 |
| javax.servlet.http.HttpSessionIdListener | 在 HttpSession id 变化时 |
| javax.servlet.http.HttpSessionActivationListener | 在 HttpSession 激活或钝化时 |
| javax.servlet.http.HttpSessionBindingListener | 在 HttpSession 上对象绑定或解绑时 |
| javax.servlet.ServletRequestListener | 在 ServletRequest 在将要被 Web 容器处理时 |
| javax.servlet.ServletRequestAttributeListener | 在 ServletRequest 上添加、移除或替换属性时 |
| javax.servlet.AsyncListener | 在异步操作开始、超时或完成时 |
| Listener 接口类 | 描述 |
| ------------------------------------------------ | ------------------------------------------ |
| javax.servlet.ServletContextListener | 在 ServletContext 创建以及销毁时 |
| javax.servlet.ServletContextAttributeListener | 在 ServletContext 添加、移除或替换属性时 |
| javax.servlet.http.HttpSessionListener | 在 HttpSession 创建和销毁时 |
| javax.servlet.http.HttpSessionAttributeListener | 在 HttpSession 上添加、移除或替换属性 |
| javax.servlet.http.HttpSessionIdListener | 在 HttpSession id 变化时 |
| javax.servlet.http.HttpSessionActivationListener | 在 HttpSession 激活或钝化时 |
| javax.servlet.http.HttpSessionBindingListener | 在 HttpSession 上对象绑定或解绑时 |
| javax.servlet.ServletRequestListener | 在 ServletRequest 在将要被 Web 容器处理时 |
| javax.servlet.ServletRequestAttributeListener | 在 ServletRequest 上添加、移除或替换属性时 |
| javax.servlet.AsyncListener | 在异步操作开始、超时或完成时 |
## ServletRequestListener
+1 -7
View File
@@ -1,10 +1,4 @@
{
"title": "Java Servlet 规范内存马",
"pages": [
"servlet",
"filter",
"listener",
"---Servlet 容器---",
"...(container)"
]
"pages": ["servlet", "filter", "listener", "---Servlet 容器---", "...(container)"]
}