No.1生命周期知识点
1、Java 对象的生命周期
创建Java有3种方式
new
2. class加载
3. classloader加载
销毁?
出作用域该对象就变为了无用对象.
等待System.gc(),销毁无用对象.
- servlet 对象的生命周期
- 第一次访问某个servlet的时候,servlet构造方法被tomcat容器调用,创建servlet对象。
第一次访问servlet的时候,创建好了servlet对象后,tomcat容器会继续调用init()
进行对象的初始化。
- 接下来的访问,每一次请求都会调用servlet的doGet方法或者doPost方法。处理请求的业务逻辑
当服务器容器关闭的时候,或者遇到异常的时候,容器会销毁servlet对象,并同时调用
destroy方法。
No.2eclipse实现过程
首先创建servlet包名
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnLzMDN0ATN0MjMxETNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
这一次我们创建的java不再是servlet类,而是简单的class类
创建完成后
什么都没有,我们进行如下操作
1.继承HttpServlet即extends HttpServlet
原因:导入init(),doGet(),destory()的jar包,只有这样我们才可以使用这些方法
2.右键进行如下操作
选择这几个方法
并且修改构造方法修改之后代码如下:
private String class_name;
public LifeCycleServlet(){
class_name="hello";//占用资源
System.out.println("LifeCycleServlet对象资源已被创建");
}
@Override
public void init() throws ServletException {
System.out.println("对象被创建了后,进行了初始化");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("请求成功了,doget方法被调用了,处理请求");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
class_name=null;
System.out.println("servlet对象被销毁了");
}
这样就完成了生命周期servlet的创建
No.3修改xml
<servlet>
<servlet-name>life</servlet-name>
<servlet-class>com.fyj.lifecycle.LifeCycleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>life</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>
如何修改xml已经在第一个jsp程序中介绍过不再叙述,记放到 的里面
No.4添加到tomcat中运行并且访问
访问网址:localhost:8080/jsp1/life
结果如下:
INFO: Server startup in 1715 ms
LifeCycleServlet对象资源已被创建
对象被创建了后,进行了初始化
请求成功了,doget方法被调用了,处理请求
可以看到servlet没有被销毁,然我我们多次回车访问网址
INFO: Server startup in 1715 ms
LifeCycleServlet对象资源已被创建
对象被创建了后,进行了初始化
请求成功了,doget方法被调用了,处理请求
请求成功了,doget方法被调用了,处理请求
请求成功了,doget方法被调用了,处理请求
结果如下,说明只有第一次访问的时候创建了servlet,后期访问的时候都是已经创建的servlet,如果servlet已经销毁再次访问就是创建再访问了
理请求
请求成功了,doget方法被调用了,处理请求
结果如下,说明只有第一次访问的时候创建了servlet,后期访问的时候都是已经创建的servlet,如果servlet已经销毁再次访问就是创建再访问了
销毁就是关闭tomcat服务.