servlet底层两个接口

Servlet接口

public interface Servlet {
    void init(ServletConfig var1) throws ServletException;

    ServletConfig getServletConfig();

    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;

    String getServletInfo();

    void destroy();
}

  1. void init(ServletConfig var1) throws ServletException;该方法为servlet初始化方法。参数是ServletConfig,该方法会在GenericServlet中得到实现。如下:
public void init(ServletConfig config) throws ServletException {
        this.config = config;
        this.init();
    }

    public void init() throws ServletException {
    }

第一个方法先是将传入的参数赋值给自己的config.然后再调用自己的无参init()方法。这个无参init()方法主要是给下面的实现类进行调用。编程人员调用该方法加入代码后,在有参init(ServletConfig config)方法执行时,该方法也会执行。

2:ServletConfig getServletConfig();该方法用于获得获得当前servlet的ServletConfig。该方法在GenericServlet中得到实现:

 public ServletConfig getServletConfig() {
        return this.config;
    }

返回了GenericServlet当前对象的config,也就是init()带参方法中传入的config.
3: void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;服务方法,在HttpServlet类中得到了实现。
4:String getServletInfo();获取当前servlet的信息;在GenericServlet中得到实现:


    public String getServletInfo() {
        return "";
    }

想要返回什么信息,可以在自己的Servlet中进行重写。返回自己想要的信息。
5: void destroy();销毁方法,销毁该servlet,结束生命周期。

    public void destroy() {
    }

ServletConfig源码

public interface ServletConfig {
    String getServletName();

    ServletContext getServletContext();

    String getInitParameter(String var1);

    Enumeration getInitParameterNames();
}

1:String getServletName();获取当前servlet名称,在GenericServlet中得到实现:

public String getServletName() {
        return this.config.getServletName();
    }

2: ServletContext getServletContext();获得当前web的Servletcontext对象,在GenericServlet中得到实现:

public ServletContext getServletContext() {
        return this.getServletConfig().getServletContext();
    }

3: String getInitParameter(String var1);获取对应参数,在GenericServlet中得到实现:

 public String getInitParameter(String name) {
        return this.getServletConfig().getInitParameter(name);
    }

4:与3类似。

你可能感兴趣的:(web,servlet)