Servlet工作原理

参考:https://www.cnblogs.com/lxq0309/p/3672838.html

要点:
1.Tomcat容器
2.Servlet生命周期
3.Servlet框架

一、Tomcat容器

Tomcat容器 --> Servlet容器 --> Context容器

容器

Tomcat基于观察者模式

1.真正管理Servlet的容器是Context容器

一个Context对应一个Web工程;新建一个servlet时就会新建一个context,同时加载它需要的config,容器的配置属性由应用的web.xml指定;

2.ServletConfig、ServletContext、ServletRequest和ServletResponse通过容器传递给Servlet,其中:

ServletConfig:定制Servlet的配置属性;
ServletContext:定义Servlet的运行上下文。

  • a.启动Tomcat时,Servlet容器被创建,每个web应用都对应于一个context容器;
  • b.客户端发起一次请求时,请求根据url地址指定的ip和端口号就能找到tomcat服务器,再根据工程名找到对应的web服务;
  • c.此时创建一个线程,根据ServletRequest发起请求,Servlet作为控制器根据页面的请求内容查找相应的服务,并将结果通过ServletResponse返回给客户端。

     注意:每个请求(而非每个用户)对应一个线程,Servlet一般只会存在一个实例

二、Servlet生命周期

Servlet类加载 -> 实例化 -> 服务 -> 销毁

Servlet生命周期

  • 1.Web Client向Servlet容器(Tomcat)发出Http请求;
  • 2.Servlet容器接收Web Client的请求;
  • 3.Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中;
  • 4.Servlet容器创建一个HttpResponse对象;
  • 5.Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给HttpServlet对象;
  • 6.HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息;
  • 7.HttpServlet调用HttpResponse对象的有关方法,生成相应数据;
  • 8.Servlet容器把HttpServlet的响应结果传给Web Client。

三、Servlet框架

1.由两个包组成:javax.servlet与javax.servlet.http
  • javax.servlet包中定义了所有的Servlet类都必须实现或者扩展的通用接口和类;
  • javax.servlet.http包中定义了采用Http协议通信的HttpServlet类;
2.Servlet框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这个接口
  • 该接口定义5种方法:
        init()
        service()
        destroy()
        getServletConfig()
        getServletInfo()

会挽雕弓如满月,西北望,射天狼

你可能感兴趣的:(Servlet工作原理)