tomcat启动后进行系统初始化及系统销毁执行业务

9 篇文章 0 订阅
3 篇文章 0 订阅

有些时候,我们有某些业务,或者某些设置是需要在项目启动的时候要进行初始化,比如,自动SQL执行、初始化fastJSON序列化过滤器,初始化系统权限等等,还有在系统销毁的时候执行某些业务,这个时候就需要了解一下GenericServlet这个类的init方法和destory方法;

了解一下这个类,这个类是一个抽象类,要想对这个类进行扩展就需要实现这个类的所有抽象方法,看看这个类的方法:

destory()方法作用与Servlet.destory()方法相同,略。

getInitParameter()方法概述:public java.lang.String getInitParameter(java.lang.String name)
返回一个包含初始化变量的值的字符串,如果变量不存在则返回null,该方法从servlet的ServletConfig变量获得命名变量的值。

getInitParameterNames()方法概述:public java.util.Enumeration getInitParameterNames()
该方法返回一个包含所有初始化变量的枚举函数。如果没有初始化变量,则返回一个空枚举函数。

getServletConfig()方法概述:public ServletConfig getServletConfig()
返回一个servlet的ServletConfig对象getServletContext()方法与ServletConfig.getServletContext()相同,略。

getServletInfo()方法概述:public java.lang.String getServletInfo()
该方法来源于Servlet接口,覆写该方法以产生有意义的信息。(如:版本号、版权、作者等)
 
init(ServletConfig config)方法概述:public void init(ServletConfig config) throws ServletException
该方法来源于Servlet接口,覆写该方法,必须调用super.init(config)

init()方法概述:public void init() throws ServletException
该方法重载Servlet.init(ServletConfig config)方法而无需调用super.init(config)。而ServletConfig对象依然可以通过调用getServletConfig()方法获得。

log(java.lang.String msg)方法概述:public void log(java.lang.String msg)
该方法把指定的信息写入一个日志文件,见ServletContext.log(String)。

log(java.lang.String message,java.lang.Throwable t)方法概述:public void log(java.lang.String message,java.lang.Throwable t)
该方法把解释性的内容和抛出的例外信息写入一个日志文件。

service()方法概述:public abstract void service(ServletRequest req,ServletResponse res)
                      throws ServletException,java.io.IOException
该方法必须由servlet容器调用以允许servlet 对请求作出响应。
见Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)。

getServletName(),见ServletConfig.getServletName()。

详细的就不进行赘述了,现在说说这个扩展,因为我这边目前只想扩展init(ServletConfig config)和destory()方法,并不想扩展其他的方法,所有我这里选择继承HttpServlet这个类,

它是GenericServlet的子类,也是一个抽象类,但是它基本上已经实现了GenericServlet的抽象方法,我们可以只实现init方法和destory方法就行了,

看一下代码:

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 所有初始化工作
 * @author Run the ant
 * @date 2018-08-17
 * @version 1.0
 */
public class InitServlet extends HttpServlet {
	private static final long serialVersionUID = 3117103275293498582L;
	private Logger logger = LoggerFactory.getLogger(InitServlet.class);
	
	public void init(ServletConfig config) throws ServletException {
		logger.info("InitServlet init start");
		long start = System.currentTimeMillis();
		//在这里进行所有的初始化工作!!!
        
        //下面这行不要忘了,执行这行才能生效!!!
		super.init(config);
		logger.info("InitServlet init completed in {}ms",(System.currentTimeMillis()-start));
	}
	
	public void destroy() {
		logger.info("InitServlet destroy.....");
		
		//在这里进行所有的销毁工作!!!
		super.destroy();
	}
	
}

好啦好啦!~~~~~  OK啦,

下篇文章讲一下,如何在初始化方法中,初始化Spring的WebApplicationContext容器。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Run_the_ant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值