A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝少普 中级黑马   /  2012-11-19 22:36  /  1084 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.IOException;
  2. import javax.servlet.Servlet;
  3. import javax.servlet.ServletConfig;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.ServletRequest;
  6. import javax.servlet.ServletResponse;

  7. public class One implements Servlet{    // 问实现Servlet接口必须实现哪些方法?

  8.         static{
  9.                 System.out.println("类加载");
  10.         }
  11.        
  12.         public One(){
  13.                 System.out.println("实例化,构造方法。。");
  14.         }
  15.        
  16.         public void destroy() {
  17.                 System.out.println("destroy 方法");
  18.         }

  19.         public ServletConfig getServletConfig() {
  20.                 System.out.println("getServletConfig 方法");
  21.                 return null;
  22.         }

  23.         public String getServletInfo() {
  24.                 System.out.println("getServletInfo 方法");
  25.                 return null;
  26.         }

  27.         public void init(ServletConfig arg0) throws ServletException {
  28.                 System.out.println("init 方法");
  29.         }

  30.         public void service(ServletRequest arg0, ServletResponse arg1)
  31.                         throws ServletException, IOException {
  32.                 System.out.println("service方法");       
  33.         }
  34. }


  35. 运行结果:
  36. 类加载
  37. 实例化,构造方法。。
  38. init 方法
  39. service方法
  40. /*  问 为什么destroy方法 在重新部署一次刷新后才会调用?
  41. 2012-11-19 9:08:45 org.apache.catalina.startup.HostConfig checkResources
  42. 信息: Reloading context [/myservlet]*/
  43. destroy 方法
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
先回答你第一个问题吧:一个Servlet必须直接或间接地实现javax.servlet.Servlet接口,一般我们选择继承javax.servlet.GenericServlet或者javax.servlet.http.HttpServlet类。
第二个问题,就来说一下我对Servlet生命周期的认识吧,
1.        tomcat容器运行时,servlet对象默认在内存中还没生成。
2.        当有一个请求到servlet时,servlet对象才生成,也就是调用init方法。以后不管有多少个请求过来,servlet对象只调用一次init方法。并且只生成一个对象。
3.        之后调用service方法。Service方法分发到do***方法。
4.        最后退出tomcat服务器时,才调用destroy方法。
你重新部署一下,或许就是重启了一下服务器,这个时候才调用destroy方法。
回复 使用道具 举报
y510662669 发表于 2012-11-19 22:48
先回答你第一个问题吧:一个Servlet必须直接或间接地实现javax.servlet.Servlet接口,一般我们选择继承java ...

分析的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马