2010.11.12———web.xml 启动时 加载一些数据
这个需求的原因是:
写了一个ServerSocket 启动一些线程 用于接收android手机上传的一些文件
需要web应用运行时 就启动这个线程
[color=red]1、web.xml里面加载数据 可用写一个servlet 在servlet里面启动线程 [/color]
复写init方法
[color=red]2、在web.xml里面配置servlet[/color]
然后 我启动web程序 可是我的servlet并没有运行 其实:
[color=red]使用servlet的话,必须有客户端向该servlet发出第一次请求,才第一次实例化同时根据web.xml中定义的初始化环境进行初始化,否则它只是在概念上存在于服务器上,服务器启动并不意味着就启动了该servlet,至多只是登记了该servlet的类和相关环境信息,还没有真正实例化。[/color]
[color=red]3、<load-on-startup>1</load-on-startup>[/color]
这个设置servlet为自动运行 里面值越小 优先级越高 当然 其实不写值 也是可以的
这个需求的原因是:
写了一个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>