servlet 与反射

servlet 与反射

 <servlet>
    <display-name>Gservlet</display-name>
  </servlet>
  <servlet-mapping>
    <servlet-name>Gservlet</servlet-name>
  </servlet-mapping>

这两个标签中的servlet -name 是一样的,

http://localhost:8080/day09_1/Gservlet 首先截取/Gservlet,然后通过web.xml找到/Gservlet,通过匹配<servlet-name>相同找到 <servlet-class>cn.itcast.web.servlet.Gservlet</servlet-class>这个字符串,通过反射

实际上用的是Class c = Class.forName("cn.itcast.web.servlet.Gservlet");

Gservlet gservlet = (Gservlet)c.newIntance(); (保证类里面有无参数的构造方法)得到了gservlet对象 然后调用service 方法 Method c = gservlet.getMethod("service",ServletRuquest.class,ServletReponse.class), c.invoke();调用service 方法,如果不通过反射没有办法实现这种方式,这些步骤都是tomcat 帮助我们做了

猜你喜欢

转载自blog.csdn.net/qq_20610631/article/details/81129748