Servlet 接口解释,在我关于 Servlet API 的上一篇指南中,我已经解释过要创建任何 Servlet,你必须直接或间接地实现Servlet
接口(间接实现意味着扩展那些实现Servlet
接口的类,这些类是GenericServlet
和HttpServlet
) 。
如果您正在创建协议相关的 servlet,例如httpServlet
,那么您应该扩展HttpServlet
类,以便扩展GenericServlet
类的协议无关的Servlet
。
在本指南中,我不打算详细解释GenericServlet
和HttpServlet
,因为我已经在单独的指南中介绍了它们。
编辑:以下是这些指南的链接: GenericServlet,HttpServlet。
总之,你有 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>