Servlet的知识

来源:互联网 发布:jquery定义数组并赋值 编辑:程序博客网 时间:2024/06/05 23:46

这几天我在学习servlet,然后今天我准备把servlet的生命周期写在这里,好久没更新了,还是要坚持,哈哈。

servlet的生命周期

1.创建servlet实例

在默认情况下Servlet实例是在第一个请求到来的时候创建,以后复用。如果有的Servlet需要复杂的操作需要载初始化时完成,

比如打开文件、初始化网络连接等,可以通知服务器在启动的时候创建该Servlet的实例。具体配置如下:

<servlet>
     
<servlet-name>TimeServlet</servlet-name>
      <servlet-class>com.allanlxf.servlet.basic.TimeServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>

2.初始化

一旦Servlet实例被创建,Web服务器会自动调用init(ServletConfig config)方法来初始化该Servlet。其中方法参数config中包含了Servlet的配置信息,比如初始化参数,该对象由服务器创建

3.服务

一旦Servlet实例成功创建及初始化,该Servlet实例就可以被服务器用来服务于客户端的请求并生成响应。在服务阶段Web服务器会调用该实例的service(ServletRequest request, ServletResponse response)方法,request对象和response对象有服务器创建并传给Servlet实例。request对象封装了客户端发往服务器端的信息,response对象封装了服务器发往客户端的信息。

4.销毁

当Web服务器认为Servlet实例没有存在的必要了,比如应用重新装载,或服务器关闭,以及Servlet很长时间都没有被访问过。服务器可以从内存中销毁(也叫卸载)该实例。Web服务器必须保证在卸载Servlet实例之前调用该实例的destroy()方法,以便回收Servlet申请的资源或进行其它的重要的处理。
    Web服务器必须保证调用destroy()方法之前,让所有正在运行在该实例的service()方法中的线程退出或者等待这些线程一段时间。一旦destroy()方法已经执行,Web服务器将拒绝所有的新到来的对该Servlet实例的请求,destroy()方法退出,该Servlet实例即可以被垃圾回收。

然后在学习的时候,还有就是 在转发和重定向之间的区别,主要区别转发是一次请求,而重定向是两次请求了,所以在实际项目的开发中,还是需要考虑清楚再决定用哪种技术,今晚学习头都大了。还有还多东西要搞,慢慢来咯。慢慢坚持,以后成为高级java工程师。天道酬勤加油生气

原创粉丝点击