Java Web之Servlet
①定义:
Servlet是Web容器的最基本组成单元,是最基础的Java Web技术。
HTTP请求是向Web服务器请求一种信息资源,如文本、图片、视频等。Servlet无非就是一个java类,只不过这个类需要符合一些规范。
②Servlet规范:
- 必须实现javax.servlet.Servlet接口的所有方法。
- 提供一个公开的无参数的构造方法
(大多框架都是基于基础工具去封装起来的,像struts2就是对Servlet与Filter的封装,Hibernate是对JDBC的封装)
③Servlet的使用:
继承GenericServlet抽象类或HttpServlet抽象类(一般继承后者)
然后重写下面方法中的一个,即可完成Servlet
④Servlet规范有两个包:javax.servlet和java.servlet.http两个包加起来34个接口和类
HttpServlet
ServletConfig
ServletContext
Filter
FilterConfig
FilterChain
RequestDispatcher
HttpServletRequest
HttpServletResponse
HttpSession
⑤Servlet的工作原理图:
⑥Servlet的生命周期:
tomcat是Servlet的运行环境,所以tomcat是servlet容器,tomcat是一个开源的Servlet容器,也是一个Web容器—用于处理静态HTML、CSS等。
在javax.servlet.Servlet接口中有三个重要的方法:
init() destroy() service()
这3个方法分别对应Servlet生命周期的三个阶段:加上Servlet是一个Java类,所以还有加载过程,一共是四个阶段:加载、初始化、提供服务和销毁。
加载:Servlet类加载到Java虚拟机中,并且实例化。
初始化:Web容器在初始化Servlet的时候会调用init()方法。
服务: 当有HTTP请求指向Servlet的时候,调用service()方法的过程,该方法体包含了该servlet的业务逻辑。
如果是继承自HttpServlet的话,根据HTTP请求类型的不同,业务逻辑会包含在
doGet()和doPost()方法中。
销毁:回调方法destroy(),一般释放资源(如关闭数据库)的代码会放在该方法中。