反射的应用场景

 面试题:一个请求发送到服务器,服务器是如何做出响应的?

HTML页面:<a href="hello">发送请求</a>

web.xml:

<!-- 定义Servlet 服务 -->
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>org.wdl.servlet.HelloServlet</servlet-class>
</servlet>

<!-- 定义请求映射 -->

<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>

Tomcat根据请求hello,解析xml获得<servlet-class>元素的Text,即字符串“org.wdl.servlet.HelloServlet”。

① 获得Class
Class<?> c= Class.forName("org.wdl.servlet.HelloServlet");
② 获得响应的Servlet的实例
Object obj = c.newInstance();
③ 调用Servlet实例的名称为“service”的Method
Method method =c.getDeclaredMethod("service",HttpServletRequest.class,HttpServletResponse.class);
④ 调用方法,使用request对象和response对象做参数
注意:当请求到服务器的时候,服务器就会创建request对象和response对象。
method.invoke(obj,request,response);

猜你喜欢

转载自www.cnblogs.com/huanghuanghui/p/10164575.html