【drp 9】Servlet生命周期
一、基本概念
Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet生命周期:
servlet有良好的生存期定义,包括加载,实例化,初始化,处理请求以及服务结束!这个生存周期分别由java.servlet.Servlet接口的init,service和destroy方法表达!
1,第一个到服务器的HTTP请求被委派到servlet容器。
2,servlet容器装载,然后再调用这个servlet的service()方法。
3,然后servlet容器产生多个线程,每个线程执行一个单一的servlet实例的service()方法的处理多个请求。
二、主要方法概述
2.1,init()
<span style="font-family:KaiTi_GB2312;font-size:18px;">public void init() throws ServletException {
// Initialization code...
}</span>
Servlet被服务器实例化后,容器运行其init方法,这个方法只运行一次,作用于servlet整个生命周期!
2.2,service()
<span style="font-family:KaiTi_GB2312;font-size:18px;">public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}</span>
service()方法是主要的方法来执行实际的任务。请求到达时,运行servlet的service方法检查HTTP请求类型(GET,POST,PUT,DELETE等),并调用doGet,doPost方法,doPut,doDelete,等适当的方法。由于service是调用其他方法,所以,在实际运用的时候,主要重写相应的doGet、doPost方法等。什么时候重写doGet或是doPost,请看博客:[drp
8]get和post的区别,以及乱码问题的解决
2.3,destroy()
<span style="font-family:KaiTi_GB2312;font-size:18px;">public void destroy() {
// Finalization code...
}</span>
这个方法,是servlet生命周期的最后一步,在整个生命周期中只执行一次,在这个方法中,可以做关闭数据库连接,停止后台线程等释放内存类似的工作。
三、总结
对于servlet生命周期的理解,其实感觉和平常用的try{ }catch{ }finally{ }代码段很像,在我们用try的时候,会在之前声明一些变量或者赋值等,算是一种前期准备,这个就相当于init初始化方法,然后,我们在try语句段去执行我们真正想要执行的方法,也就是servlet里面的service方法。最后捕捉完异常,我们会用finally语句段去做最后的处理,如:关闭数据库,事务回滚等,这就等同于servlet的destroy方法。
对于基础知识的总结学习,还任重而道远!
【drp 9】Servlet生命周期的更多相关文章
- Servlet 生命周期与web容器的关系
servlet生命周期由web容器(如tomcat)管理,初始化一次,直到web容器关闭才会被销毁.1.servlet是单例多线程,每个请求过来容器都会启用一个新线程 2.servlet在容器中保持单 ...
- 测试Servlet生命周期学习笔记
测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...
- Servlet生命周期及工作原理
1 Servlet生命周期Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方 ...
- Java开发之Servlet生命周期
Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器结束的时候结束生命周期.无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servle ...
- Java Servlet系列之Servlet生命周期
Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...
- servlet生命周期与工作原理
→ Jsp的本质是Servlet,Servlet是服务器端的小程序,运行在服务器,用于处理及响应客户端的请求. Servlet和JSP的区别: servlet是特殊的Java类,必须继承HttpS ...
- javaWeb中servlet开发(3)——Servlet生命周期
生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...
- Servlet 生命周期、工作原理
按照单例的编码规则,Servlet本身只是一个Java,结构并不是单例结构. 只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Se ...
- Servlet生命周期+工作原理
Servlet生命周期+工作原理 1.Servlet的生命周期: Servlet加载,加载,服务,销毁. 2.典型函数解释: Init():这个函数是用来初始化Servlet对象的.在 ...
随机推荐
- C#之线程和并发
建议大家对C#撑握的不错的时候,可以去看一些开源项目.走技术这条路,就要耐得住寂寞(群里双休日说要让群主找妹子进群的人必须反思),练好内功.不撑握C#高级知识点,别想看懂优秀的开源项目,更别指望吸收其 ...
- PLSQL_基础系列06_判断操作NVL / NULLIF / COALESCE / NVL2(案例)
2014-12-08 Created By BaoXinjian
- 《挑战程序设计竞赛》 4.1.1 矩阵 P286
想写几篇挑战的感悟,也有助于自己理解这本书.但这上面大多贴的是书上的代码,主要是为了用的时候后直接复制就好了,这样就很方便了,就相当于黑盒模板了. 1.线性方程组 /** \brief 高斯消元法 * ...
- C#使用原生的Directx和OpenGL绘图
原文 混合语言编程-C#使用原生的Directx和OpenGL绘图的方法 由于项目需要做一些图形展示,所以就想到了使用Directx和OpenGL来绘图,但项目准备使用C#来开发(大家比较熟悉C#), ...
- js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
http://www.swiper.com.cn/http://www.idangero.us/swiper/demos/ 解决问题点: 1.先得到图片真实的宽高, 根据真实宽高 等比例 2.调用的控 ...
- linux命令行下导出导入.sql文件
一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(以管理员身份运行): ------------------------------------ ...
- .NET中使用Memcached的相关资源整理(转)
Memcached官方站点:http://www.danga.com/memcached/ Memcached Win32 1.2.6下载:http://code.jellycan.com/memca ...
- selenium启动firefox、ie、chrome各浏览器方法
1.启动firefox浏览器 a.如果你的本地firefox是默认路径安装的话,如下方式即可启动浏览器 WebDriver driver = new FirefoxDriver(); driver.g ...
- java中读取文件以及向文件中追加数据的总结
package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...
- Delphi Socket 阻塞线程下为什么不触发OnRead和OnWrite事件
//**********************************************************************************//说明: 阻塞线程下为什么不触 ...