转自 http://lives.iteye.com/blog/1141121
自动加载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">。
分享到:
相关推荐
在Web服务开发中,Servlet是Java Web应用的核心组件之一,用于处理HTTP请求并响应客户端。在Web服务启动时自动...这样,Web服务启动时就会自动加载Servlet并执行相应的数据库操作,提高了系统的响应速度和用户体验。
本文将详细介绍如何在Web服务器启动时加载一个Java ServerSocket服务,并提供相关代码示例。 #### 配置web.xml 首先,我们需要在项目的`web.xml`文件中进行必要的配置。这里有两个主要步骤: 1. **设置监听端口**...
在启动过程中,Tomcat会检查并解析`webapps`目录下的所有应用,读取每个应用的`WEB-INF/web.xml`,配置Servlet和过滤器的映射,设置会话超时和其他运行时参数。了解启动流程有助于优化应用性能和排查问题。 Servlet...
1. 加载和实例化:当第一个请求到达Servlet时,Tomcat会加载Servlet类并创建一个实例。 2. 初始化:调用Servlet的`init()`方法,可以在这里进行初始化工作,如设置初始参数。 3. 服务:对于每个请求,Servlet容器...
这个过程中,如果在`web.xml`中配置了`<load-on-startup>`元素,那么该Servlet将在服务器启动时自动装载。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>...
首次请求匹配的Servlet时,服务器会加载Servlet类,并通过调用无参构造函数实例化Servlet对象。在`LifeCycleServlet`的示例中,构造函数被调用,打印"1 构造器方法"。 2. **初始化**: 实例化后,服务器会调用...
当服务器启动或第一次接收到对Servlet的请求时,Servlet被加载并初始化。然后,每次有新的请求到来,Servlet都会调用`service()`方法来处理。当服务器关闭或不再需要Servlet时,会执行销毁方法。 2. **Servlet配置*...
当服务器接收到对Servlet的第一次请求时,会加载Servlet类并创建一个实例。然后调用`init()`方法进行初始化,这个方法通常用于设置Servlet的配置。在服务阶段,Servlet通过`service()`方法处理来自客户端的请求,并...
2. "一个支持servlet的web服务器":这可能是我们寻找的初级Web服务器实现,它可能是一个简单的Java程序,实现了HTTP服务器的基本功能,并且能够加载和执行Servlet。这个源码将展示如何从零开始构建一个能运行Servlet...
如果值为非负数,容器会在应用启动时加载Servlet,值越小优先级越高。 3. 当Web应用被重启,所有Servlet会被重新初始化。 **运行阶段** 在运行阶段,Servlet随时准备响应客户端的请求。当请求到达时,Servlet容器会...
3. **Servlet容器**:Servlet容器是Web服务器的核心部分,负责加载、实例化、初始化、服务和销毁Servlet。在这个实现中,容器可能包含一个Servlet的注册表,用来存储Servlet的映射信息。 4. **Servlet生命周期**:...
1. 加载和初始化:当Web容器接收到第一个针对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。然后调用`init()`方法进行初始化,可以在这个方法中进行配置初始化或者资源加载。 2. 服务:初始化后,每当有...
在这个实例中,我们需要一个简单的Servlet容器,它能够根据请求的URL找到对应的Servlet并执行相应操作。 4. **Servlet生命周期**:Servlet有三个主要的方法:init、service和destroy。init方法在Servlet被加载时...
- 服务:`service()`方法处理客户端请求,并生成响应。 - 销毁:当Servlet不再需要时,`destroy()`方法被调用,用于释放资源。 3. **Servlet配置**: - 在`web.xml`部署描述符中配置Servlet,包括定义Servlet、...
在Web应用启动时,Servlet容器(如Tomcat)会加载Servlet类,并根据配置创建一个或多个Servlet实例。初始化阶段,Servlet调用`init()`方法进行初始化操作,如设置初始参数。在服务阶段,每当有请求到达,Servlet容器...
1. 加载与实例化:Web容器(如Tomcat)首次接收到Servlet请求时,会加载Servlet类并创建其实例。 2. 初始化:创建实例后,会调用Servlet的`init()`方法进行初始化,可以在这里设置全局变量或配置信息。 3. 服务:...
1. **加载**:当服务器启动或第一次收到对Servlet的请求时,会加载Servlet类并创建其实例。 2. **初始化**:加载后,服务器调用Servlet的`init()`方法进行初始化,这个方法只在Servlet实例创建时执行一次。 3. **...
- 当Servlet容器启动时,它会加载配置信息,如`web.xml`,从中获取Servlet的定义。 - Servlet容器为每个定义的Servlet创建一个实例,并调用其`init()`方法进行初始化。在此过程中,Servlet可以进行必要的准备工作...
1. 加载与实例化:当服务器启动或首次接收到对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。 2. 初始化:实例化后,服务器调用Servlet的init()方法进行初始化,一般用于配置Servlet。 3. 服务:每当有新...