5.servlet----->生命周期,实现servlet接口方式,工作时序

来源:互联网 发布:淘宝联盟怎么设置推广 编辑:程序博客网 时间:2024/06/08 06:10

上一篇文章介绍了以实现servlet接口方式开发一个servlet。该种方式现在已经不使用,但是对我们理解servlet生命周期很有帮助。先贴一段代码:

&&&&&&注意:其中的toLocaleString()方法已经过时。改为:DateFormat.getDateTimeInstance().format(new Date())

同时要引入import java.text.DateFormat;

还要注意这个类应该是public的


在service方法中编写业务逻辑代码。上一篇文章已经提到要在相应的web应用的web.xml文件进行servlet配置。那么,如何配置呢?

在web.xml的web-app节点内添加代码:

此时在浏览器地址栏中输入:http://localhost:8080/hspWeb1/MyFirstServlet

网页上就会显示出相应的字符串和当前的时间。

tomcat根据web.xml中的servlet映射找到url-pattern对应的servlet-name后,再去servlet节点中找到匹配一致的servlet-name,然后去执行对应的servlet-class。

我们来简述一下servlet的生命周期(工作时序):

详细:

(1)我们输入网址,例如:http://localhost:8080/hspWeb1/MyFirstServlet

(2)浏览器解析主机名:首先查看本地C:\Windows\System32\drivers\etc的hosts文件,如果在hosts文件乜有查询到,到DNS查询

(3)查到后,尝试连接web服务器,如果没有查到,报错

(4)连接好后,浏览器向web服务器发出http请求(里面有很多参数,例如请求方式是GET还是POST,请求什么资源等等)

(5)web服务器收到请求后依次解析主机,解析web应用,解析资源名

(6)解析完毕后去相应的web站点的web.xml查询MyFirstServlet在哪个包下

(7)查到后,使用反射机制,常见实例调用init方法将该实例装载到内存中。

【接下来就是servlet的生命周期过程】

(1)当servlet第一次被调用的时候,会触发init()方法,该方法会把servlet的实例加载到内存,该方法只会被调用一次。

(2)web服务器把接收到的http请求封装成Request对象,作为service的参数传入,调用servlet的service()方法

(3)第二次及以后访问该servlet就直接调用service()方法,不会再去调用init()方法

(4)当tomcat服务器将该web应用reload(在localhost:8080页面中点击manage)或者关闭都会去调用destroy()方法



0 0
原创粉丝点击