Servlet初始化:随服务器启动而运行

2010年3月2日 | 分类: 技术 | 标签: , 2,960浏览 | By admin

有时候,我们需要仅仅是在服务启动,而非其他更为复杂的定时任务的时候,做些初始化的工作,比如将一些数据导入到内存中等等,用Servlet的初始化可以很好的做到这一点。而初始化工作是通过Servlet中的init()方法来做的。

建一个Servlet类:AutoRunServlet.java,代码如下:

public class AutoRunServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void init() throws ServletException{

System.out.println(">>你可以在这里初始化一些东西>>");

        String v = this.getInitParameter("a");
        Enumeration e = this.getInitParameterNames();
        while(e.hasMoreElements()){
            System.out.println(">>haha>>"+e.nextElement());
        }

}

}

在web.xml中进行配置:

<servlet>

<servlet-name>AutoRunServlet</servlet-name>

<servlet-class>AutoRunServlet</servlet-class>//类的包路径

<load-on-startup>0</load-on-startup>
<init-param>
 <param-name>a</param-name>
 <param-value>传入的参数值1</param-value>
 </init-param>
<init-param>
 <param-name>b</param-name>
 <param-value>传入的参数值2</param-value>
 </init-param>

</servlet>

<load-on-startup>0</load-on-startup>表示Servlet的运行优先级,0表示服务一启动,Servlet就加载进行初始化

启动服务(比如tomcat),在控制台中就可以看到打印出:

>>你可以在这里初始化一些东西>>

这样的文字了。

另外在启动服务(tomcat)的时候有可能会报某种错:

jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

这一般是你项目中使用的Servlet包与tomcat中带的包重复了,我使用的是tomcat 6.0.x,如果我在项目中存在着一个Servlet包:servlet-api-2.5-6.1.14.jar,那么这个时候就会报错,因为在TOMCAT_HOME/lib下已经存在servlet-api.jar了,所以解决方法就是只保留一个包,比如我将项目下的servlet-api-2.5-6.1.14.jar删除,再重启服务就没有问题了。

如无转载说明,则均为本站原创文章,转载请注明:来源:子猴博客





相关内容

  1. 2010年3月2日13:06

    哈哈,有人叫猴子,你叫子猴,我先以为是名字写错了,原来真有啊!

  2. 2010年3月2日23:05

    兰州是台湾人 倒过来念

  3. 子猴
    2010年3月3日14:00

    风吟 :

    兰州是台湾人 倒过来念

    不大懂这句是什么意思 :?:

*

酷!左边勾选上复选框,评论里将显示你博客文章!
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

Upload Files

你可以上传一张或多张图片,这些图片将附在你评论里