servlet的生命周期

一:servlet的生命周期

首先,我们应该进行如下的思考:servlet什么时候导入计算机的内存,又是什么时候被销毁的呢?

现在我们来举一个例子,假设你是一个店员,现在你已经打开了店门,但是还没有进去工作,而是在门外等待。这时候来了第一位顾客,于是你就要进去店里,为这个顾客服务了。这个顾客离开后,你也能跟着离开吗?显然不能。你只有在商店关门的时候你才可以离开。我们把这个例子引入到servlet的生命周期中。当打开了店门,意味着服务器的启动,但这个时候servlet并没有被初始化,也就是没有被调入内存中。当来了第一位顾客的时候,也就是需要调用这个servlet的时候,servlet就要被初始化并载入内存,于是servlet进入了店里进行工作。但是当这个任务完成了时候,也就是处理了这个顾客的请求后,servlet不能离开。它只有等到商店关门了,也就是服务器关闭的时候,才可以从内存中被销毁。

简单总结一下,servlet的生命周期就是从第一次调用一直到服务器关闭。

二:适当改变servlet的生命周期

还是接着上面那个例子,假设你是商店老板,你要求店员在商店开门的时候就马上进去。这个时候有没有什么办法呢?

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <!-- 配置Servlet -->
  	<!-- 配置servle类路径 -->
  	<servlet>
  		<servlet-name>HelloWorld</servlet-name>
  		<servlet-class>com.a.Hello</servlet-class>
  		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<!-- 配置servlet访问方式 -->
  	<servlet-mapping>
       <servlet-name>HelloWorld</servlet-name>
       <url-pattern>/my</url-pattern>
  	</servlet-mapping>
</web-app>

在配置servlet的类路径的时候,在里面加上

<load-on-startup>1</load-on-startup>

就可以了。这样这个servlet的生命周期就是从服务器启动开始一直到服务器结束之后了。当你完成了这一步,恭喜你,又可以多剥削你的员工一些了。

另外,说明一下,这句代码里面的数字1是什么意思。当我们实际的进行开发时,肯定不会只有一个servlet,如果有多个servlet要求在服务器开始的时候就加载,就会存在一个加载顺序问题。这个数字1,就是指第一个被加载,2就是代表第二个。当然,不管数字是几,它都会在服务器启动之后都被加载完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值