2010.11.12———web.xml 启动时 加载一些数据

本文介绍如何在Web应用启动时加载数据,通过在web.xml中配置servlet,并使用load-on-startup参数实现自动加载。避免了传统方式下必须由客户端发起请求才能触发servlet初始化的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2010.11.12———web.xml 启动时 加载一些数据

这个需求的原因是:

写了一个ServerSocket 启动一些线程 用于接收android手机上传的一些文件

需要web应用运行时 就启动这个线程

[color=red]1、web.xml里面加载数据 可用写一个servlet 在servlet里面启动线程 [/color]

package util;


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

public class AndroidServlet extends HttpServlet{

private FileServer s = new FileServer(7878);
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
System.out.print("启动Android监听...");
new Thread(new Runnable() {
public void run() {
try {
s.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
System.out.println("成功");
}



}


复写init方法

[color=red]2、在web.xml里面配置servlet[/color]

<servlet>
<servlet-name>androidServlet</servlet-name>
<servlet-class>util.AndroidServlet</servlet-class>
</servlet>



然后 我启动web程序 可是我的servlet并没有运行 其实:

[color=red]使用servlet的话,必须有客户端向该servlet发出第一次请求,才第一次实例化同时根据web.xml中定义的初始化环境进行初始化,否则它只是在概念上存在于服务器上,服务器启动并不意味着就启动了该servlet,至多只是登记了该servlet的类和相关环境信息,还没有真正实例化。[/color]

[color=red]3、<load-on-startup>1</load-on-startup>[/color]

这个设置servlet为自动运行 里面值越小 优先级越高 当然 其实不写值 也是可以的


<servlet>
<servlet-name>androidServlet</servlet-name>
<servlet-class>util.AndroidServlet</servlet-class>
<load-on-startup></load-on-startup>
</servlet>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值