什么是servlet
servlet是一门用于开发动态web资源的技术,可以运行在Web服务器中的小型Java程序,有时也叫做服务器端的小应用程序。servlet 可以通过 HTTP协议接收和响应来自 Web 客户端的请求。
servlet的语法跟JavaSE是一样的并且能够使用JavaSE中的API,要想创建一个动态资源可以分为以下两步:
- 编写一个Java类,实现javax.servlet.Servlet接口,该接口在servlet-api.jar包中
- 将这个Java类部署在web服务器中
web浏览器响应过程
servlet执行流程
Servlet的生命周期可以分为四个阶段,即装载类及创建实例阶段、初始化阶段(调用init方法)、服务阶段(调用service方法)和实例销毁阶段(调用distroy方法)
servlet生命周期
servlet体系结构
servlet的层级结构和常用的类的描述:
- GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。
- 大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现。
- ServletConfig接口定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象。
- HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息。
- HttpServlet是GenericServlet的子类。
- GenericServlet是个抽象类,必须给出子类才能实例化。它给出了设计servlet的一些骨架,定义了servlet生命周期,还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的,也就是说 你有可能用非http协议实现它。
- HttpServlet是子类,当然就具有GenericServlet的一切特性,还添加了doGet, doPost, doDelete, doPut, doTrace等方法对应处理http协议里的命令的请求响应过程。
- 一般没有特殊需要,自己写的Servlet都扩展HttpServlet 。