From 93fc7205cc8281616163848f26ba057a61343b7d Mon Sep 17 00:00:00 2001 From: ReaJason Date: Fri, 11 Apr 2025 00:02:57 +0800 Subject: [PATCH] docs: add ; for code --- docs/shell/ServletShell.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/shell/ServletShell.md b/docs/shell/ServletShell.md index 005e4932..daca0f10 100644 --- a/docs/shell/ServletShell.md +++ b/docs/shell/ServletShell.md @@ -15,15 +15,15 @@ ServletContext 定义了 Servlet 运行的 Web 应用视图,一个 Web 应用 ServletContext 必须支持编程式添加 Servlet、Filter 和 Listener,对框架开发者有用处。但是规定了这些方法只能在 ServletContextListener.contexInitialized 或 ServletContainerInitializer.onStartup 应用初始化的时候调用。 ```java -addServlet(String servletName, String className) -addServlet(String servletName, Servlet servlet) -addServlet(String servletName, Class servletClass) -addFilter(String filterName, String className) -addFilter(String filterName, Filter filter) -addFilter(String filterName, Class filterClass) -void addListener(String className) -void addListener(T t) -void addListener(Class listenerClass) +addServlet(String servletName, String className); +addServlet(String servletName, Servlet servlet); +addServlet(String servletName, Class servletClass); +addFilter(String filterName, String className); +addFilter(String filterName, Filter filter); +addFilter(String filterName, Class filterClass); +void addListener(String className); +void addListener(T t); +void addListener(Class listenerClass); ``` 这就是在注入内存马时我们需要先拿 Context 的原因(已经写在了 Servlet 规范里面啦),所以针对实现了 Servlet 规范的 Web 容器都是一个套路,并且该反射调用哪些方法也写在里面了。不过在实现的时候却写了那么多代码的原因就是,其规定了这些方法只能在应用初始化的时候调用,我们注入内存马的时候已经是应用运行时了,那些代码实际上就是将方法内的具体实现重新用反射实现一遍。