Javaweb学习笔记之HttpServlet(三):Servlet 的自动加载

package com.demo.d_life;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
Servlet 的自动加载:
	默认情况下,第一次访问 servlet 的时候创建 servlet 对象。如果 servlet 的构造方法或 init 
	方法中执行了比较多的代码,那么就会导致用户第一次访问 servlet 的时候比较慢。
	
	所以可以将 servlet 对象创建的时机提前到加载 web 应用的时候,即 tomcat 服务器启动的时候。
	只需要在 servlet 的配置信息中,加上一个 <load-on-startup> 即可,如下:
	<servlet>
    	<servlet-name>LifeDemo2</servlet-name>
    	<servlet-class>com.demo.d_life.LifeDemo2</servlet-class>
    
    	<!-- 让 servlet 对象自动加载(在 tomcat 服务器启动的时候) -->
    	<load-on-startup>1</load-on-startup>
  	</servlet>
   	
   	如果使用的是注解,则可以使用下面的方法:
   		@WebServlet(urlPatterns="/LifeDemo2", loadOnStartup=1)
   		
   	注意:loadOnStartup 的值越大,创建的优先级越低。即优先创建 loadOnStartup 值小的 servlet。
 */

@WebServlet(urlPatterns="/LifeDemo2", loadOnStartup=1)
@SuppressWarnings("serial")
public class LifeDemo2 extends HttpServlet{

	/*
	 * 1、构造方法:创建 Servlet 对象的时候调用。默认情况下,第一次访问 servlet 的时候创建 servlet 对象;
	 * 	只调用一次,说明 servlet 对象在 tomcat 服务器中是单实例的。
	 */
	public LifeDemo2(){
		System.out.println("1、构造方法被调用了");
	}
	
	/*
	 * 2、init 方法:创建完 servlet 对象的时候调用;只调用一次。
	 */
	@Override
	public void init(ServletConfig config) throws ServletException {
		System.out.println("2、init 方法被调用了");
	}
	
	/*
	 * 3、service 方法:每次发出请求的时候调用;可调用多次,说明 servlet 是多线程的。
	 */
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("3、service 方法被调用了");
	}

	/*
	 * 4、destroy 方法:销毁 servlet 对象的时候调用。
	 * 	停止服务器,或者重新部署 web 应用时销毁 servlet 对象。只调用一次。
	 */
	@Override
	public void destroy() {
		System.out.println("4、destroy 方法被调用了");
	}

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值