码迷,mamicode.com
首页 > 编程语言 > 详细

Java Web 深入分析(8) Servlet工作原理解析

时间:2018-01-01 20:42:48      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:context   server   设置   conf   lis   缓存   接管   servlet   功能   

Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

Servlet容器

  • servlet容器启动过程:
    在tomcat容器管理等级中,Context直接管理着Servlet在容器中的包装类Wrapper,所以Servelt容器如何运行就影响这servlet,下面就是servlet容器启动过程
    Servlet容器启动时,触发servletContextEvent事件,并通知相应的监听器servletContextListener;
    Servlet容器在启动的过程中通过servletContextListener监视servletContext的状态(初始化或者销毁servletContext);
    servletContextListener中通过contextInitialized初始化方法,根据web.xml对servletContext进行配置,即将Context容器的属性缓存在内存中,供Service服务利用;
  • web应用初始化工作:
    web的初始化是在contextConfig中实现的,应用的初始化主要是对web.xml进行解析,这个文件描述了Web应用的关键信息,也是整个Web应用的入口。
    Tomcat将web.xml文件解析后,将其中的属性设置到Context容器中,这里包括创建Servlet实例,Filter和Listener。将Servlet包装成Context中的包装类Wrapper。

Servlet实例

  • 创建Servlet对象
    如果Servlet在web.xml中load-on-startup的配置大于0,那么在Context容器启动时就会被实例化。
  • 初始化Servlet
    通过调用Servlet的init方法,同时把包装了StandarWrapper对象的StandarWrapperFacade作为ServletConfig传给Servlet。
    Servlet从web.xml被解析到初始化。ServletConfig 和 ServletContext的区别ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet有效,一个servlet的ServletConfig对象不能被另一个servlet访问。

Servlet体系结构

Servlet如何工作

Servlet中的Listener

Filter如何工作

Servlet中的url-pattern

Java Web 深入分析(8) Servlet工作原理解析

标签:context   server   设置   conf   lis   缓存   接管   servlet   功能   

原文地址:https://www.cnblogs.com/humi/p/8168665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!