Servlet(二)

来源:互联网 发布:空心车轴数据 编辑:程序博客网 时间:2024/06/04 20:12

Servlet也是一个class。所以 在提供服务的时候需要new对象。十分重要的一点是,Servlet只会new一个对象对外提供服务,这是j2ee规定的标准。

现在实验如下:

import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServletLife extends HttpServlet{public TestServletLife(){System.out.println("constructor!");}@Overridepublic void destroy() {System.out.println("desdroy!");}@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doGet");}}

访问http://localhost:8080/test/TestServletLife后可以看到后台tomcat的输出如下

constructor!
init
doGet

这很正常,先通过构造方法new一个对象,初始化后通过doGet方法对外提供服务。可是当刷新后得到的是这样的输出:

constructor!
init
doGet
doGet

这就说明servlet在对外提供服务是始终只有一个对象,这个对象将永久的存在于我们的内存当中,除非server停止或者webapp销毁。






原创粉丝点击