自动秒收录

servlet的生命周期 (Servlet实现的几种形式)


文章编号:845 / 更新时间:2023-11-08 19:41:46 / 浏览:
阿里云

先看示意图:


1.继承GenericServlet

public class TestServlet extends GenericServlet {
    private static final long serialVersionUID = 1L;
    @Override
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
GenericServlet--抽象类,实现了Servlet接口
public abstract class GenericServlet 
    implements Servlet, ServletConfig, java.io.Serializable
    private transient ServletConfig config;


2.继承HttpServlet

好爽,request,response,config,都是现成的,service方法已经被重写,只需要根据需求调用 doGet() 或者doPost() 方法即可!!!

public class TestServlet2 extends HttpServlet {
    public TestServlet2() {
        super();
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
    public void doDelete(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    public void doPut(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    public void init() throws ServletException {


HttpServlet


这个类继承GenericServlet类,实现了java.io.Serializable的接口,它是个抽象类,给其子类创建一个Http Servlet去适应一个网站。


而HttpServlet的子类必须重写至少一个方法,其中较为经常修改的方法如下:


1、如果你希望servlet支持HTTP的Get请求,重写doGet方法


2、如果你希望servlet支持HTTP的Post请求,重写doPost方法


3、如果你希望servlet不但可以处理数据,还可以处理文件,重写doPut方法。Put的调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据


4、如果你希望servlet允许客户端删除服务器端的文件或者Web页面,重写doDelete方法,它与Put相似。


5、如果你希望控制servlet生命周期所产生的资源,可以重写init和destroy方法


6、如果你希望servlet提供关自身的相关信息,可以调用或重写javax.servlet.http.HttpServlet类继承javax.servlet.GenericServlet类的getServletInfo方法。

public abstract class HttpServlet extends GenericServlet
    implements java.io.Serializable {

3.实现Servlet接口

public class TestServlet implements Servlet {
    private static final long serialVersionUID = 1L;
    public void destroy() {
    public ServletConfig getServletConfig() {
        return null;
    public String getServletInfo() {
        return null;
    public void init(ServletConfig config) throws ServletException {
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {



是不是很不爽,需要重写这么多方法!!!



相关标签: 开发者云计算云原生开源阿里云

本文地址:https://www.0558.la/article/bb0043afc90a2c81e054.html

上一篇:layer弹出框layer弹框在实际项目中的一些应...
下一篇:新注册的域名多久可以备案新注册的域名要如...

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.0558.la/" target="_blank">自动秒收录</a>