1.当Web容器 发现请求指向一个servelet,创建两个对象HttpServletResponse ,HttpServletRequest
2.然后根据请求URL找到正确的servlet (发送一个xxx.do 然后去配置文件(dd)中搜索便找到了相应的servlet.class)
3加载类 servlet.class
4.实例化servelet(构造函数) ----- 使用编译器默认的构造函数即可,
5.调用init(ServeletConfig) //每个servelet 有一个ServeletConfig对象,这个对象会去读一些配置信息,我们可以不必把某些经常改变的信息编码到java代码中。
部署文件web.xml中的<init-param>等
6.然后分配一个线程然后将两个参数通过service()传递
7.Service() 根据发出的http 方法确定doGet()或者doPost() 或者是其他的、。
8.Destory() 当请求方法结束,回收垃圾
对于每一个web应用来说,都会有一个实例化的ServletContext对象,这个对象作为整个web项目类似全局变量的地位。
而ServeletConfig是作为每一个Servelet对象都拥有一个。
在部署的配置文件(web.xml)中,我们可以通过
<context-param> //我在<web-app></web-app>中,我作为整个web的全局变量
<param-name>Email2</param-name>
<param-value>aaa@qq.com</param-value>
</context-param>
<servlet>
<servlet-name>Beer</servlet-name>
<!--BEER是一个虚构的名字,只能在DD配置文件中使用-->
<servlet-class>com.example.web.BeerSelect</servlet-class>
<!--类完全限定名 -->
<init-param>
<param-name>Email</param-name>
<param-value>abc@qq.com</param-value>
</init-param>
</servlet>
对于这里配置的信息,我们在servelet中分别调用来得到
getServletContext().getInitParameter("Email2");
getServletConfig().getInitParameter("Email");