码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat启动时载入某个servlet

时间:2017-05-23 13:20:34      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:技术分享   start   pre   throws   style   java   又能   配置文件   ace   

     当我们做一个java项目时,有几个功能都须要载入servlet或者实现某个共同的方法,尽管我们一味地在每个功能中依次载入也不是不能够,可是当某个servlet 或者方法被频繁地载入和应用。我们将面向对象的思想置于不顾却也真的说只是去。

     所以。对于这类的servlet我们须要在Tomcat启动时直接载入,比方初始化信息、读取配置文件等需求时,我们就能够通过web.xml的配置文件对来实现这个需求:

    首先,AbstractItemServlet 类中封装了相应的Init方法:

<span style="font-family:FangSong_GB2312;font-size:18px;">package com.bjpowernode.drp.util.servlet;

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

import com.bjpowernode.drp.util.BeanFactory;

/**
 * 
 * 负责系统在server启动时初始化
 * @author chao
 *
 */
public class InitServlet extends HttpServlet {

	@Override
	public void init() throws ServletException {		
		System.out.println("创建BeanFactory。。。

。。"); //将抽象工厂放到servletContext中 BeanFactory beanFactory = BeanFactory.getInstance(); this.getServletContext().setAttribute("beanFactory", beanFactory); } }</span>

      其次。在项目的配置文件web.xml(路径为:/WebRoot/WEB-INF/web.xml)中对抽象出来的servlet进行配置:

<span style="font-family:FangSong_GB2312;font-size:18px;">      <!-- 设置tomcat一启动就运行InniServlet -->
	<servlet>
	   <servlet-name>InitServlet</servlet-name>
	   <servlet-class>com.bjpowernode.drp.util.servlet.InitServlet</servlet-class>
	   <load-on-startup>2</load-on-startup>
	</servlet></span>

      这样就能够实如今Tomcat启动时调用com.bjpowernode.drp.util.servlet.InitServlet的init()方法。

     当中。<load-on-startup>N</load-on-startup> 的含义是:标记容器是否在启动的时候就载入这个servlet。当值为0或者大于0时。表示容器在应用启动时就载入这个servlet。当是一个负数时或者没有指定时。则指示容器在该servlet被选择时才载入。正数的值越小,启动该servlet的优先级越高。

     有了这种方法,我们既能够省去每次调用该方法的运行时间和占用空间,又能够完美地实现面向对象的思想。

那我们又何乐而不为呢?

                       技术分享

Tomcat启动时载入某个servlet

标签:技术分享   start   pre   throws   style   java   又能   配置文件   ace   

原文地址:http://www.cnblogs.com/gavanwanggw/p/6893534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!