Servlet中的init()方法如何才会在服务器启动时执行

如果要想让 servlet 的 init () 方法在服务器启动 时就被执行,则需要在 web.xml 中相应的 servlet 下配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6     <display-name></display-name>
 7     <servlet>
 8         <description>This is the description of my J2EE componentHD</description>
 9         <display-name>HellooServlet</display-name>
10         <servlet-name>HelloServlet</servlet-name>
11         <servlet-class>com.yzy.dfd.HelloServlet</servlet-class>
12         <init-param>
13             <param-name>init/param</param-name>
14             <param-value>avalible in servlet init()</param-value>
15         </init-param>
16         <load-on-startup>1</load-on-startup>
17     </servlet>
18
19     <servlet-mapping>
20         <servlet-name>HelloServlet</servlet-name>
21         <url-pattern>/servlet/HelloServlet</url-pattern>
22     </servlet-mapping>
23     <context-param>
24         <param-name>context/param</param-name>
25         <param-value>avalible during application</param-value>
26     </context-param>
27     <welcome-file-list>
28         <welcome-file>index.jsp</welcome-file>
29     </welcome-file-list>
30 </web-app>

<load-on-startup>1</load-on-startup>设置为正整数(包括0)

这样此Servlet 就会在服务器启动 时执行了。(注意:如果设置为负整数,则不会在启动 服务器时执行)

如果不配置,启动 服务器时也不会执行,而要等此Servlet 被调用时才会被执行。

时间: 2024-11-03 22:18:42

Servlet中的init()方法如何才会在服务器启动时执行的相关文章

IOS开发中重写init方法使用需谨慎

IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图控制器中,然后把搜索结果呈现在一个TableView上,但是我在调试时,每次输入完然后点击搜索按钮时,弹出结果列表总是空的,我需要返回到首页再点击一次搜索才会出现结果,而且我在首页更改搜索关键字之后,点击搜索,结果还是上次的搜索结果,必须返回点击一次才会出现这次的搜索结果. 经过大神指点,原来这个问

Swift中的init方法

摘要:Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,而在子类中,也强制调用super版本的designated初始化. 我们在深入初始化方法之前,不妨先再想想Swift中的初始化想要达到一种怎样的目的. 其实就是安全.在Objective-C中,init方法是非常不安全的:没有人能保证init只被调用一次,也没有人保证在初始化方法调用以后,实例的各个变量都完成初始化,甚至如

javaweb中服务器启动所执行的程序

1.过滤器 init(FilterConfig),只有web.xml中配置过滤器,服务器启动时将执行,经典案例 struts2框架2servlet init(servletConfig),web.xml配置<servlet><load-on-startup>,服务器启动时就执行,servlet默认初始化在第一次访问的时候,经典案例:springmvcs3.ServletConfigLister监听器,ServletContext对象监听器,用于监听对象创建和销毁的,tomcat启动

spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动. 问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则会报错:javax.naming.NameNotFoundException: Name com.test.InitS

java中服务器启动时,执行定时任务

package com.ripsoft.util; import java.util.Calendar; import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class TimerListener implements ServletContextListener{ private Timer timer = nu

Servlet中的getServletContext()方法详解

public class ServletContext01 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //1.获取对象        ServletContext context = getServletContext();        Stri

关于JAVA中的static方法、并发问题以及JAVA运行时内存模型

一.前言 最近在工作上用到了一个静态方法,跟同事交流的时候,被一个问题给问倒了,只怪基础不扎实... 问题大致是这样的,"在多线程环境下,静态方法中的局部变量会不会被其它线程给污染掉?": 我当时的想法:方法中的局部变量在运行的时候,是存在JAVA栈中的,方法运行结束,局部变量也就都弹光了,理论上单线程的话是不会有问题的,我之所以不知道,是因为不清楚在JAVA内存模型中,一个线程对应一个栈,还是多个线程共享一个栈... 其实如果知道每个线程都有一个自己的JAVA栈的话,问题也就很清楚了

服务器启动时Webapp的web.xml中配置的加载顺序

一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文. 3.容器将<context-param>转换为键值对,并交给servletContext. 4.容器创建<listener>中的类实例,创建监听器. 二  Load-on-startup Lo

beego 导入一个普通的包都会执行init方法,如果是struct就不会执行

default.go package controllers import ( "beego-test/models" "beego-test/service" "github.com/astaxie/beego" ) type MainController struct { beego.Controller } func (c *MainController) Get() { c.Data["Website"] = &quo