Servlet框架基础和生命周期(结合源码)、destroy()的思考
前言
Servlet是一个java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个
java类。Servlet是处理客户端的请求,并将处理结果以响应的方式返回给客户端。Servlet框架
是怎样的呢?它的生命周期又是什么情况呢?这是本文需要探求的。
Servlet框架
网上下载Servlet源码,解压之后发现其由两个包组成:
1、javax.servlet
2、javax.servlet.http
javax.servlet
此包中定义了所有Servlet类都必须实现的接口或类。
接口定义:
ServletConfig接口---在初始化过程中由Servlet容器(Tomcat调用)
ServletContext接口---定义Servlet用于获取容器信息的方法
ServletRequest接口---向服务器请求信息
ServletResponse接口 ---响应客户端请求
Servlet接口---定义所有的Servlet必须实现的方法
类定义:
ServletInputStream类 --- 用于从客户端读取二进制数据
ServletOutputStream类 ---用于将二进制数据写入到客户端
GenricServlet--- 抽象类,定义一个通用的,独立于底层协议的servlet。
java.servlet.http
此包中定义了使用HTTP通信协议的所有Servlet类应该实现的类、接口。
接口定义:
HttpServletRequest接口 --- 封装http请求
HttpServletResponse接口 --- 封装http响应
HttpSession接口 --- 用于表示客户端存储有关客户的信息
HttpSessionAttributeListener接口---实现这个监听接口,当用户获取Session的属性列表发生
改变的时候得到通知。
类的定义:
HttpServlet类 --- 扩展了GenericServlet的抽象类
Cookie类 --- 创建一个Cookie,Cookie技术,用户存储服务器发送给客户端的信息。
通过阅读Servlet框架源码,其主要的框架结构如下图:
Servlet工作过程
通过上述Servlet框架的了解我们可以初步描述一下Servlet在Tomcat容器中是如何工作的。
来看下面的时序图:
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
Tomcat和HttpServlet是如何进行交互的呢?从源码中我们可以得到
Servlet生命周期
在Servlet框架中所有的Servlet类都必须实现Servlet这个接口。其中定义了三个方法:
1、init方法:负责初始化Servlet对象。
&n
补充:Web开发 , Jsp ,