参考: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()
会挽雕弓如满月,西北望,射天狼