Servlet接口

创建Servlet必须直接或间接地实现Servlet接口。

javax.servlet 包中的Servlet接口声明:

public interface Servlet

间接实现是指不直接实现Servlet接口,而是通过继承实现Servlet接口的类:GenericServletHttpServlet间接实现。

创建用于web服务的Servlet可以继承HttpServlet,不依赖特定协议的应用可以继承通用Selvlet父类:GenericServlet

3种创建servlet的方法:

  1. 通过继承HttpServlet
  2. 通过继承GenericServlet
  3. 直接实现Servlet接口

因为Java Servlet一般用于web开发,所以通常都通过继承HttpServlet类创建servlet。

Servlet接口方法

Servlet接口中的方法:

  1. void destroy(): 该方法在Servlet生命周期结束时由Servlet容器调用,用于释放资源。与多次调用的service()方法不同,Servlet容器在整个生命周期中只调用该方法一次。一旦destroy()方法被调用,servlet容器就不会调用该servlet的service()方法。

  2. void init(ServletConfig config):当Servlet容器启动时(web服务器启动时触发),容器会加载所有Servlet类并创建这些类的实例,然后调用每个servlet实例的init()方法进行初始化。

  3. void service(ServletRequest req, ServletResponse res):这是servlet生命周期中唯一被多次调用的方法。这个方法处理客户端请求,每次服务器接收到请求时都会调用这个方法处理。

  4. ServletConfig getServletConfig():返回一个ServletConfig对象,这个对象包含了servlet的初始化、启动参数信息。

  5. lang.String getServletInfo():返回关于servlet的信息,如作者、版本、版权等信息。

例子

本例通过直接实现servlet接口创建了一个servlet类。

index.html

<a href="welcome">点击调用servlet</a>

DemoServlet.java

import java.io.*;
import javax.servlet.*;
public class DemoServlet implements Servlet{
   ServletConfig config=null;
   public void init(ServletConfig config){
      this.config=config;
      System.out.println("servlet初始化完成!");
   }

   public void service(ServletRequest req,ServletResponse res)
   throws IOException,ServletException{
       res.setContentType("text/html");
       PrintWriter pwriter=res.getWriter();
       pwriter.print("<html>");
       pwriter.print("<body>");
       pwriter.print("<h1>奇客谷教程Servlet接口例子</h1>");
       pwriter.print("</body>");
       pwriter.print("</html>");
   }
   public void destroy(){
       System.out.println("servlet结束!");
   }
   public ServletConfig getServletConfig(){
       return config;
   }
   public String getServletInfo(){
       return "奇客谷教程Servlet接口例子";
   }
}

web.xml

<web-app>
<servlet>
   <servlet-name>qikeguServletInterfaceDemo</servlet-name>
   <servlet-class>DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>qikeguServletInterfaceDemo</servlet-name>
   <url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>

参考

Interface Servlet



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载