1、简介:Servlet编程是通过javax.Servlet和javax.servlet.http这两个包的类和接口实现的,其中javax.servlet.Servlet接口至关重要,所有的Servlet必须实现该接口或者继承实现了该接口的类。
 
2、Servlet接口有5个方法:
public void init(ServletConfig config) throws ServletException;
public void service(ServletRequest request, ServletResponse response) throes ServletException, IOException;
public void destroy();
public ServletConfig getServletConfig();
public String getServletInfo();
 
3、Servlet声明周期方法:init、service、destroy
(1)init:在Servlet类已经初始化之后,init方法会被servlet容器调用。init方法只被调用一次,表示servlet已经被加载进服务中了。init方法必须在servlet可以成功接收任何请求之前成功运行完毕。servlet程序员可以通过覆盖这个方法来写仅仅需要运行一次的初始化代码,例如架子啊数据库驱动,值初始化等。在其他情况下,该方法是空的。
(2)Servlet,servlet容器给servlet容器调用service方法,该方法接收一个ServletRequest参数和一个ServletResponse参数,Servlet Request对象用于向servlet中传递客户端的请求参数,ServletResponse对象则负责封装Servlet响应。在servlet生命周期中,service()方法会被调用多次。
(3)Destroy,用于从服务器中移除一个servlet实例,通常使用在servlet容器正在关闭或者servlet容器需要一些空闲内存时,仅仅在所有servlet容器的service方法已经退出或者超时淘汰的时候,这个方法才被调用。在servlet容器已经调用完destroy方法之后,在同一个servlet里将不会再调用service方法,destroy方法提供了一个机会来清理任何已经被占用的资源,例如内存,文件句柄和线程,并确保任何持久化状态和servlet的内存当前状态是同步的。
 
4、Servlet容器针对每个servlet的HTTP请求的工作过程
(1)第一次调用servlet的时候,加载该servlet类并调用servlet的init方法(仅仅一次)
(2)对每次请求,构造一个javax.servlet.ServletRequest实例和一个javax.servletServletResponse实例。
(3)调用servlet的service方法,同时传递ServletRequest和ServletResponse对象。
(4)当servlet类被关闭时,调用servlet的destroy方法并卸载srvlet类。

Tomcat学习笔记(二)—— 一个简单的Servlet容器的更多相关文章

  1. how tomcat works 读书笔记(二)----------一个简单的servlet容器

    app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...

  2. 一个简单的servlet容器

    [0]README 0.1)本文部分文字转自 “深入剖析Tomcat”,旨在学习  一个简单的servlet容器  的基础知识: 0.2)for complete source code, pleas ...

  3. how tomcat works 札记(两)----------一个简单的servlet集装箱

    app1 (看着眼前这章建议读者,看how tomcat works 札记(一个)----------一个简单的webserver http://blog.csdn.net/dlf123321/art ...

  4. Tomcat学习笔记(二)

    Servlet浅析 javax.servlet.Servlet是一个接口,所有的Servlet必须实现接口里面的方法. 该接口在tomcat/bin中的servlet-api.jar包中. Servl ...

  5. blfs(systemv版本)学习笔记-制作一个简单的桌面系统

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 大概思路: lfs(系统)+xorg(驱动)+i3-wm(窗口+桌面)+lightdm(显示管理器+登录管理器) 链接: lfs ...

  6. Oracle学习笔记:一个简单的行转列例子

    一个简单的行列转换例子,原始数据. create table temp_cwh_student ( name ), subject ), score ) ) select * from temp_cw ...

  7. 一个简单的Servlet容器实现

    上篇写了一个简单的Java web服务器实现,只能处理一些静态资源的请求,本篇文章实现的Servlet容器基于前面的服务器做了个小改造,增加了Servlet请求的处理. 程序执行步骤 创建一个Serv ...

  8. 攻城狮在路上(肆)How tomcat works(二) 一个简单的servlet容器

    该节在上一节的基础上增加了所谓对静态资源和动态资源访问的不同控制流程.示例里面采用的是对路径“/servlet/”进行了特殊处理. 一. 主要还是从HttpServer1中的main方法开始,先解析出 ...

  9. Tomcat 学习笔记二

    学习一 java.bean.PropertyChangeListener用来监听bean类的属性值改变.当改变时同时执行对应事件.而且是线程安全的.tomcat用此reload的Boolean值改变是 ...

随机推荐

  1. 随手记一下,VS2015卡顿问题解决。

    不知道什么开始,vs2015卡顿的很,启动时加载项目很慢,调试是启动慢,停止调试时直接卡死半分钟.其他都还能忍受,最不能忍受的是点击停止调试按钮后十几秒没反应! 网上有解决方案如下几个,我试了,都不行 ...

  2. ActiveMQ (三) 讯息传送机制以及ACK机制

    详析请看如下博客: http://blog.csdn.net/lulongzhou_llz/article/details/42270113 后续再做整理.

  3. 在Windows上运行Linux

    在Windows上运行Linux 之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu.运行起来还真方便,以后在wind ...

  4. C/C++调用Golang 二

    C/C++调用Golang 二 <C/C++调用Golang 一>简单介绍了C/C++调用Golang的方法步骤,只涉及一个简单的函数调用.本文总结具体项目中的使用场景,将介绍三种较复杂的 ...

  5. Eclipse配置tomcat程序发布到哪里去了?

    今天帮同事调一个问题,明明可以main函数执行的,他非要固执的使用tomcat执行,依他.但是发布到tomcat之后我想去看看发布后的目录,所以就打开了tomcat中的webapps目录,可是并没有发 ...

  6. C# 判断网站是否能访问或者断链

    参考网站:http://www.cnblogs.com/junny/archive/2012/10/30/2745978.html public bool CheckUrlVisit(string u ...

  7. 在Ubuntu下安装OpenJDK的方法

    最近在看<深入理解Java虚拟机>就想试一下在ubuntu下安装一个自己的虚拟机,说实话还是废了些功夫的. 首先我的ubuntu版本是Ubuntu 14.04.5, 于是我就去OpenJD ...

  8. JavaScript ES6中export及export default的区别

    相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在JavaScript ES6中,export与export default均可用于导出常量.函 ...

  9. python3之面向对象

    1.面向对象术语 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类属性(类变量):类属性在整个实例化的对象中是公用的.类属 ...

  10. 【转】LDA数学八卦

    转自LDA数学八卦 在 Machine Learning 中,LDA 是两个常用模型的简称: Linear Discriminant Analysis 和 Latent Dirichlet Alloc ...