Servlet执行原理-反射方式实例化、调用方法 作者:马育民 • 2022-02-10 08:59 • 阅读:10068 # 说明 Servlet 配置在 `web.xml` 中,tomcat启动时,读取 `web.xml`,然后通过 **反射** 方式 实例化 Servlet 本文通过代码演示,通过 **反射** 方式 实例化 Servlet、调用 `init()` 方法 # 案例 ### 创建Servlet 创建 `servlet.HelloServlet` 用于演示,代码如下: ``` public class HelloServlet extends HttpServlet{ public HelloServlet(){ System.out.println("构造方法"); } //初始化方法 @Override public void init(ServletConfig config) throws ServletException { System.out.println("init()初始化方法"); } } ``` ### 反射方式实例化、调用方法 反射方式实例化 Servlet,调用 `init()` 方法 ``` import java.lang.reflect.Method; import javax.servlet.ServletConfig; public class Test { public static void main(String[] args) throws Exception { Class clazz=Class.forName("servlet.HelloServlet"); //通过反射方式实例化 Object obj=clazz.newInstance(); //获取 init() 方法 Method method=clazz.getMethod("init", ServletConfig.class); //调用 init() 方法,注意:传入数组 method.invoke(obj, new Object[]{null}); } } ``` **注意:** `method.invoke(obj, new Object[]{null});` 传入数组 原文出处:http://malaoshi.top/show_1IX2kfvjcZsd.html