servlet 类的核心是javax.servlet 接口,servlet 接口定义了5个方法,有三个由servlet 容器来调用:
init(servlet config), service(servletRequest req,servletResponse res),destroy
javaweb 应用中的程序代码可以直接访问下面两个方法:
getservletConfig(),getservletInfo()
GenericServlet 抽象类
GenericServlet 抽象类为servlet接口提供了通用实现,还实现了servletConfig和Serializeable接口;
GenericServlet 类实现了Servlet接口中的init,和destroy方法,并没实现service方法,GenericServlet里面的service方法是它唯一的抽象方法,GenericServlet的子类必须实现该方法;
HttpServlet 类是GenericServlet类的子类,此类为Servlet 接口提供HTTP 协议相关通用实现,此类实现了Servlet接口中的service方法,该方法实际上调用的是它的重载方法
ServletRequest接口
Servlet接口中的service方法中的ServletRequest 类参数,该参数是客户端的请求
HttpServletRequest 接口
该接口是ServletRequesta接口的子接口
ServletResponse接口
Servlet接口中的service方法中的ServletResponse 类参数,该参数接受到客户端请求并响应的结果
其中为了提高输出数据的效率,ServletOutputStream和PrintWrite先把数据写到缓冲区,当缓冲区的数据提交给客户后,ServletResponse的isCommitted方法返回为true
HttpServletResponse 是ServletResponse的子接口
ServletContext接口
ServletContext接口是 Servlet与容器之间的直接通信接口,Servlet容器在启动一个web应用时,会为它创建一个ServletContext对象,每个web应用都有唯一的ServletContext对象,每一个web应用的所有servlet对象都共享一个总的ServletContext,比如下面几种应用:
setAttribute,getAttribute removeAttribute getAttributeNames,等,详情参考此接口的文档。