servlet生命周期高度灵活.servlet容器惟一必须严格遵守的规则就是以下的生命周期约定: □ 生成并初始化servlet □ 处理客户请求 □ 卸载servlet并进行无用单元收集
对应上述约定的,我们在应用中,有以下方法: □ init()方法:负责初始化servlet对象 □ service()方法:负责响应客户请求; □ destroy()方法:当servlet对象退出生命周期时,负责释放占用资源;
一个实例,计数器实例,在web.xml进行计数值的初始化 file://InitCounter.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class InitCounter extends HttpServlet{ int count; public void init() throws ServletException { String initial=getInitParameter("initial"); try{ count=Integer.parseInt(initial); } catch(NumberFormatException e){ count=0; } } public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { res.setContentType("text/html"); PrintWriter out=res.getWriter();
count++; out.println("since loading this servlet instance has been accessed "+count+" times"); } public void destroy(){ super.destroy(); } }
file://web.xml <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <servlet> <servlet-name>couner</servlet-name> <servlet-class>InitCounter</servlet-class> <init-param> <param-name>initial</param-name> <param-value>1000</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>

|