天天看点

jsp2生命周期

No.1生命周期知识点

1、Java 对象的生命周期

创建Java有3种方式

  1. new

    2. class加载

    3. classloader加载

    销毁?

    出作用域该对象就变为了无用对象.

    等待System.gc(),销毁无用对象.

  2. servlet 对象的生命周期
  3. 第一次访问某个servlet的时候,servlet构造方法被tomcat容器调用,创建servlet对象。
  4. 第一次访问servlet的时候,创建好了servlet对象后,tomcat容器会继续调用init()

    进行对象的初始化。

  5. 接下来的访问,每一次请求都会调用servlet的doGet方法或者doPost方法。处理请求的业务逻辑
  6. 当服务器容器关闭的时候,或者遇到异常的时候,容器会销毁servlet对象,并同时调用

    destroy方法。

No.2eclipse实现过程

首先创建servlet包名

jsp2生命周期

这一次我们创建的java不再是servlet类,而是简单的class类

创建完成后

jsp2生命周期

什么都没有,我们进行如下操作

1.继承HttpServlet即extends HttpServlet

​ 原因:导入init(),doGet(),destory()的jar包,只有这样我们才可以使用这些方法

2.右键进行如下操作

jsp2生命周期

选择这几个方法

jsp2生命周期

并且修改构造方法修改之后代码如下:

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服务.
           

继续阅读