1.Servlet仅用来充当控制器使用
Servlet提供了7种方式已应对客户端的请求:doDelete,doHead,doGet,doOptions,doPost,doPut,doTrace(参考:点击打开链接)
一般我们关注doGet和doPost方法,所以一般只需重写这俩种方法;当然如果Servlet对所有请求都是一样的,可以直接重写service()方法来代替(可阅读api)。
2.初始化及销毁
init(ServletConfig config):创建 Servlet 实例时,调用该方法的初始化 Servlet 资源。注:需要在重写时第一行调用父类的init()方法。
destroy():销毁 Servlet 实例时,自动调用该方法的回收资源。
通常无需重写,只有当该Servlet需要使用某些资源时,才需要在init()方法中初始化资源;如果在该Servlet销毁之前需要完成资源的回收,则可以通过重写destroy()方法来实现。
3.配置
从 Servlet 3.0 开始,配置 Servlet 有两种方式:
在 Servlet 类中使用@WebServlet Annotation 进行配置。
通过在 web.xml 文件中进行配置。
4.生命周期
Servlet的创建及销毁由web容器控制,创建其实例有俩个时机:
(1)客户端第一次请求某个Servlet时,系统创建其Servlet的实例(大部分如此)
(2)Web应用启动时立即创建实例,即 load-on-startup Servlet。
生命周期:
(1)创建Servlet实例;
(2)调用servlet的init方法,对其servlet初始化;
(3)该实例将一直存在容器中,用于响应请求;
(4)当web容器决定销毁该实例,调用destroy方法,通常发生在web应用关闭时;所以,在servlet中不应当存在与某次请求有关的数据成员变量存在。