《Servlet工作原理.pdf》由会员分享,可在线阅读,更多相关《Servlet工作原理.pdf(1页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、一、Servlet 工作原理 Servlet 是运行在 Servlet 容器中的,由 Servlet 容器来负责 Servlet 实例的查找、创建以及整个生命周期的管理,Servlet 整个生命周期可以分为四个阶段:类装载及实例创建阶段、实例初始化阶段、服务阶段以及实例销毁阶段。类装载及实例创建阶段 默认情况下,Servlet 实例是在接受到第一个请求时进行创建并且以后的请求进行复用,如果有 Servlet 实例需要进行一些复杂的操作,需要在初始化时就完成,比如打开文件、初始化网络连接等,可以配置在服务器启动时就创建实例,具体配置方法为在声明 servlet标签中添加load-on-start
2、up1/loadon-startup标签。初始化 inint(ServletConfig config)一旦 Servlet 实例被创建,将会调用 Servlet 的 inint 方法,同时传入 ServletConfig 实例,传入 Servlet 的相关配置信息,init 方法在整个 Servlet 生命周期中只会调用一次。服务 services()为了提高效率,Servlet规范要求一个Servlet实例必须能够同时服务于多个客户端请求,即 service()方法运行在多线程的环境下,Servlet 开发者必须保证该方法的线程安全性。销毁 destory()当 Servlet 容器将决定
3、结束某个 Servlet 时,将会调用 destory()方法,在 destory 方法中进行资源释放,一旦 destory 方法被调用,Servlet 容器将不会再发送任何请求给这个实例,若 Servlet 容器需再次使用该 Servlet,需重新再实例化该 Servlet 实例。二、Servlet 执行流程 web 服务器接受到一个 http 请求后,web 服务器会将请求移交给 servlet 容器,servlet 容器首先对所请求的 URL 进行解析并根据 web。xml 配置文件找到相应的处理 servlet,同时将request、response 对象传递给它,servlet 通过 request 对象可知道客户端的请求者、请求信息以及其他的信息等,servlet在处理完请求后会把所有需要返回的信息放入response对象中并返回到客户端,servlet 一旦处理完请求,servlet 容器就会刷新 response 对象,并把控制权重新返回给 web 服务器。三、与其它技术的比较 与其它服务相比 servlet 有以下的一些优点:1、运行速度上比 CGI 快,因为使用了多线程 2、servlet 使用了标准的 api,可被许多 web 服务支持 3、与系统无关性,一次编译多次使用