`
Lives
  • 浏览: 201327 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Web服务启动时自动加载Servlet,并执行service处理

阅读更多
自动加载Servlet的方法介绍:
在web.xml这样定义一个servlet:
<servlet>
<servlet-name>t1</servlet-name>
<servlet-class>com.base.test.T1</servlet-class>
<!-- 如果需要自动加载,加下面一句 -->
<load-on-startup>1</load-on-startup>
</servlet>

<load-on-startup>标记web容器是否在启动的时候就加载这个servlet

当值为0或者大于0时,表示web容器在应用启动时就加载这个servlet;

当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载;

正数的值越小,启动该servlet的优先级越高。


在写这个Servlet里,需要重写init()方法:
package com.base.test;

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

public class T1 extends HttpServlet {

public T1() {
super();
}

public void init() throws ServletException {
System.out.println("init t1 ... ");
}
}

重启web容器,在控制台可以看到"init t1 ... "这么一行信息。

然后修改我们的代码,让这个Servlet可以读取数据库的内容,并进行相关的处理。
如果操作数据库用的是spring的HibernateTemplate和JdbcTemplate,访问数据库是以bean注入的方式,在action里注入service的实现,读取数据库数据,其实现在的关键就是得到这个service的实例化对象。

修改后的servlet:
package com.base.test;

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

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.abc.test.Service1;

public class T1 extends HttpServlet {

public T1() {
super();
}

public void init() throws ServletException {
ServletContext sc = getServletContext();
WebApplicationContext ac = WebApplicationContextUtils.getRequiredWebApplicationContext(sc);


Service1 service = (Service1) ac.getBean("yourServiceId");
List list = service.getList();
// list就是从数据库取到的内容,你可以做相关的处理
}
}


yourServiceId 就是在applicationContext.xml文件里面配置的<bean id="yourServiceId">。





分享到:
评论
1 楼 Franciswmf 2012-10-16  
这种做法,web服务会启动两次!你知道原因吗?

相关推荐

    Web服务启动时自动加载Servlet,并读取数据库内容

    在Web服务开发中,Servlet是Java Web应用的核心组件之一,用于处理HTTP请求并响应客户端。在Web服务启动时自动...这样,Web服务启动时就会自动加载Servlet并执行相应的数据库操作,提高了系统的响应速度和用户体验。

    WEB服务器启动时加载一个ServerSocket服务

    本文将详细介绍如何在Web服务器启动时加载一个Java ServerSocket服务,并提供相关代码示例。 #### 配置web.xml 首先,我们需要在项目的`web.xml`文件中进行必要的配置。这里有两个主要步骤: 1. **设置监听端口**...

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

    在启动过程中,Tomcat会检查并解析`webapps`目录下的所有应用,读取每个应用的`WEB-INF/web.xml`,配置Servlet和过滤器的映射,设置会话超时和其他运行时参数。了解启动流程有助于优化应用性能和排查问题。 Servlet...

    tomcat启动服务运行servlet

    1. 加载和实例化:当第一个请求到达Servlet时,Tomcat会加载Servlet类并创建一个实例。 2. 初始化:调用Servlet的`init()`方法,可以在这里进行初始化工作,如设置初始参数。 3. 服务:对于每个请求,Servlet容器...

    servlet执行过程与生命周期

    这个过程中,如果在`web.xml`中配置了`&lt;load-on-startup&gt;`元素,那么该Servlet将在服务器启动时自动装载。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;...

    Web编程(Java )-Servlet的生命周期.doc

    首次请求匹配的Servlet时,服务器会加载Servlet类,并通过调用无参构造函数实例化Servlet对象。在`LifeCycleServlet`的示例中,构造函数被调用,打印"1 构造器方法"。 2. **初始化**: 实例化后,服务器会调用...

    java web servlet实例

    当服务器启动或第一次接收到对Servlet的请求时,Servlet被加载并初始化。然后,每次有新的请求到来,Servlet都会调用`service()`方法来处理。当服务器关闭或不再需要Servlet时,会执行销毁方法。 2. **Servlet配置*...

    简单的web开发——servlet案例

    当服务器接收到对Servlet的第一次请求时,会加载Servlet类并创建一个实例。然后调用`init()`方法进行初始化,这个方法通常用于设置Servlet的配置。在服务阶段,Servlet通过`service()`方法处理来自客户端的请求,并...

    fuwu.rar_web服务器servlet

    2. "一个支持servlet的web服务器":这可能是我们寻找的初级Web服务器实现,它可能是一个简单的Java程序,实现了HTTP服务器的基本功能,并且能够加载和执行Servlet。这个源码将展示如何从零开始构建一个能运行Servlet...

    servlet生命周期详解

    如果值为非负数,容器会在应用启动时加载Servlet,值越小优先级越高。 3. 当Web应用被重启,所有Servlet会被重新初始化。 **运行阶段** 在运行阶段,Servlet随时准备响应客户端的请求。当请求到达时,Servlet容器会...

    java源码:一个支持servlet的web服务器.rar

    3. **Servlet容器**:Servlet容器是Web服务器的核心部分,负责加载、实例化、初始化、服务和销毁Servlet。在这个实现中,容器可能包含一个Servlet的注册表,用来存储Servlet的映射信息。 4. **Servlet生命周期**:...

    web容器---servlet

    1. 加载和初始化:当Web容器接收到第一个针对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。然后调用`init()`方法进行初始化,可以在这个方法中进行配置初始化或者资源加载。 2. 服务:初始化后,每当有...

    基于Java的实例源码-一个支持servlet的web服务器.zip

    在这个实例中,我们需要一个简单的Servlet容器,它能够根据请求的URL找到对应的Servlet并执行相应操作。 4. **Servlet生命周期**:Servlet有三个主要的方法:init、service和destroy。init方法在Servlet被加载时...

    servlet-ppt java web相关servlet课件

    - 服务:`service()`方法处理客户端请求,并生成响应。 - 销毁:当Servlet不再需要时,`destroy()`方法被调用,用于释放资源。 3. **Servlet配置**: - 在`web.xml`部署描述符中配置Servlet,包括定义Servlet、...

    达内servlet

    在Web应用启动时,Servlet容器(如Tomcat)会加载Servlet类,并根据配置创建一个或多个Servlet实例。初始化阶段,Servlet调用`init()`方法进行初始化操作,如设置初始参数。在服务阶段,每当有请求到达,Servlet容器...

    一个servlet的web应用

    1. 加载与实例化:Web容器(如Tomcat)首次接收到Servlet请求时,会加载Servlet类并创建其实例。 2. 初始化:创建实例后,会调用Servlet的`init()`方法进行初始化,可以在这里设置全局变量或配置信息。 3. 服务:...

    servlet插件

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

    servlet容器工作原理

    - 当Servlet容器启动时,它会加载配置信息,如`web.xml`,从中获取Servlet的定义。 - Servlet容器为每个定义的Servlet创建一个实例,并调用其`init()`方法进行初始化。在此过程中,Servlet可以进行必要的准备工作...

    web笔记 —— Servlet

    1. 加载与实例化:当服务器启动或首次接收到对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。 2. 初始化:实例化后,服务器调用Servlet的init()方法进行初始化,一般用于配置Servlet。 3. 服务:每当有新...

Global site tag (gtag.js) - Google Analytics