`
生死格斗
  • 浏览: 127889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
有时候,我们需要仅仅是在服务启动,而非其他更为复杂的定时任务的时候,做些初始化的工作,比如将一些数据导入到内存中等等,用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删除,再重启服务就没有问题了。

转自:http://www.zihou.me/2010/03/02/1691
分享到:
评论

相关推荐

    tomcat启动服务运行servlet

    标题“Tomcat启动服务运行Servlet”涉及到的是Java Web开发中的核心概念,主要涵盖Tomcat服务器的启动过程以及Servlet的执行机制。Tomcat是一款开源、免费的Web应用服务器,广泛用于部署Java Servlet和JavaServer ...

    Servlet

    #### 三、Servlet初始化 Servlet的初始化是一个重要的步骤,涉及到资源的分配和准备。初始化过程主要由容器(如Tomcat)负责,具体步骤如下: 1. **加载Servlet类**:当服务器启动并接收到针对某个Servlet的第一个...

    一个支持servlet的web服务器.rar

    配置Servlet通常涉及到编写web.xml文件,这是一个部署描述符,其中包含了关于Servlet的信息,如Servlet名称、类名、URL映射以及初始化参数等。在web.xml中,你可以定义多个Servlet,并设置它们之间的关系,比如过滤...

    如何运行servlet(第一个servlet).doc

    init 方法用于初始化 Servlet,doGet 和 doPost 方法用于处理 GET 和 POST 请求,destroy 方法用于释放资源。在我们的示例中,我们将编写一个简单的 HelloWorldServlet,它将在浏览器中打印出 "hello world!"。 在...

    servlet 心的练习

    1. 加载:当服务器启动或第一次接收到对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。 2. 初始化:加载后,Servlet实例会调用`init()`方法进行初始化,例如设置配置参数或打开数据库连接等。 3. 服务:...

    servlet api servlet api

    - 初始化:创建实例后,调用`init()`方法进行初始化,通常用来配置Servlet。 - 服务:每当服务器接收到对Servlet的新请求,都会调用`service()`方法来处理请求和响应。 - 销毁:当Servlet不再使用或者Web应用停止...

    使用servlet的简单服务器demo

    在我们的例子中,服务器启动时会加载Servlet,然后初始化,接着处理来自用户的请求,最后当服务器关闭或Servlet不再需要时会被销毁。 2. **GET与POST请求**:HTTP协议中的两种主要请求方法。GET用于获取资源,其...

    如何运行Servlet程序

    1. 服务器初始化:服务器启动时,Servlet 容器将创建一个 Servlet 实例。 2. 初始化 Servlet:Servlet 容器调用 Servlet 的 init 方法,进行 Servlet 的初始化。 3. 服务请求:当请求到达服务器时,Servlet 容器将...

    Tomcat服务器配置、启动分析、Servlet文件配置

    `Tomcat启动分析-Servlet-Web.xml.doc`文档可能涵盖了启动过程中的关键步骤,包括加载`context.xml`(用于全局配置)、解析`web.xml`(Web应用的部署描述符)以及初始化Servlet和过滤器等。在启动过程中,Tomcat会...

    web监听端口(Socket服务随web启动而启动)

    4. **使用后台线程**:在Web应用的初始化阶段,你可以启动一个新的后台线程来运行Socket服务。这样,即使Web请求处理完毕,Socket服务也能持续运行。 无论采用哪种方法,都要确保Socket服务的端口不会与Tomcat的...

    最简单的SERVLET应用DEMO下载

    2. 初始化:创建实例后,服务器调用Servlet的`init()`方法进行初始化,通常用于加载配置信息或资源。 3. 服务:每当有新的请求到达,Servlet容器会调用`service()`方法,该方法根据请求类型选择`doGet()`或`doPost()...

    servlet 函数 中文介绍

    1. 加载与实例化:当服务器启动或第一次接收到针对Servlet的请求时,Servlet容器会加载Servlet类并创建其实例。 2. 初始化:Servlet实例化后,会调用`init()`方法进行初始化。在这里,Servlet可以配置属性,打开...

    servlet学习demo

    1. 加载与初始化:当服务器启动或第一次接收到对Servlet的请求时,Servlet容器会加载Servlet类并创建其实例。接着,调用`init()`方法进行初始化操作。 2. 服务:每当有请求到达Servlet时,容器都会调用`service()`...

    说一说servlet的生命周期

    例如,可以通过控制Servlet的实例化次数来减少内存消耗,或者在`init()`方法中初始化一次性的资源,在`destroy()`方法中及时释放,以确保服务器的高效运行。此外,通过重写`init()`和`destroy()`方法,开发者可以...

    servlet插件

    1. **加载**:当服务器启动或第一次收到对Servlet的请求时,会加载Servlet类并创建其实例。 2. **初始化**:加载后,服务器调用Servlet的`init()`方法进行初始化,这个方法只在Servlet实例创建时执行一次。 3. **...

    servlet-api-3.0.jar包

    9. **生命周期管理**:Servlet 3.0允许自定义Servlet、Filter和Listener的初始化和销毁逻辑,通过实现`ServletContextListener`接口中的相应方法。 `servlet.LICENSE.txt`文件通常包含了关于Servlet API 3.0的许可...

    ServletAPI

    1. 加载:当服务器启动或者第一次收到对Servlet的请求时,服务器会加载Servlet类并创建其实例。 2. 初始化:Servlet实例被创建后,会调用`init()`方法进行初始化,通常用于配置Servlet。 3. 服务:每当服务器接收到...

    Servlet Tutorial

    - ServletConfig 和 ServletContext 接口:二者都用于在 Servlet 启动时传递配置信息,但 ServletConfig 提供的是单个 Servlet 的初始化参数,而 ServletContext 提供的是整个 Web 应用的环境信息。 8. 状态管理: ...

    手工编写Servlet的详细过程+实例

    当服务器启动或第一次接收到对Servlet的请求时,会加载Servlet类并创建其实例。这是通过Servlet容器(如Tomcat)来完成的,容器使用Java的`Class.forName()`方法加载Servlet类,并通过`newInstance()`创建对象。 2...

Global site tag (gtag.js) - Google Analytics