您的位置:首页 > 其它

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

2015-05-07 23:33 246 查看
上一篇文章介绍了以实现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()方法

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: