Servlet 接口解释

Servlet 接口解释,在我关于 Servlet API 的上一篇指南中,我已经解释过要创建任何 Servlet,你必须直接或间接地实现Servlet接口(间接实现意味着扩展那些实现Servlet接口的类,这些类是GenericServletHttpServlet) 。

如果您正在创建协议相关的 servlet,例如httpServlet,那么您应该扩展HttpServlet类,以便扩展GenericServlet类的协议无关的Servlet
在本指南中,我不打算详细解释GenericServletHttpServlet,因为我已经在单独的指南中介绍了它们。
编辑:以下是这些指南的链接: GenericServletHttpServlet

总之,你有 3 种方法来创建一个 servlet:

1)通过扩展HttpServlet

2)通过扩展GenericServlet

3)通过实现Servlet接口

注意:但是你应该总是喜欢第一个创建 servlet 的方法,即通过扩展HttpServlet类。

Servlet接口方法

以下是Servlet接口中可用的方法列表。

1) void destroy():这个方法在 servlet 生命周期结束时由 Servlet 容器调用。与在生命周期中多次调用的service()方法不同,此方法在整个生命周期中仅由 Servlet 容器调用一次。一旦调用了destroy()方法,servlet 容器就不会为该 servlet 调用service()方法。

2) void init(ServletConfig config):当 Servlet 容器启动时(在 Web 服务器启动时发生),它加载所有 servlet 并实例化它们。在为每个实例化的 servlet 调用此init()方法之后,此方法初始化 servlet。

3) void service(ServletRequest req, ServletResponse res):这是在 servlet 生命周期中多次调用的唯一方法。此方法为客户端请求提供服务,每次服务器收到请求时都会调用它。

4) ServletConfig getServletConfig():返回一个ServletConfig对象,该对象包含该 servlet 的初始化和启动参数。

5) String getServletInfo():返回有关 servlet 的信息,例如作者,版本和版权。

示例如下:

在这个例子中,我们通过扩展Servlet接口创建了一个 servlet 类。

index.html

<a href="welcome">Click here to call the 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("Initialization complete");
   }

   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 Example Program</h1>");
       pwriter.print("</body>");
       pwriter.print("</html>");
   }
   public void destroy(){
       System.out.println("servlet life cycle finished");
   }
   public ServletConfig getServletConfig(){
       return config;
   }
   public String getServletInfo(){
       return "A Demo program written by Chaitanya";
   }
}

web.xml

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

<servlet-mapping>
   <servlet-name>Beginnersbook</servlet-name>
   <url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>
赞(1)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址