1、引言
由于web应用的特殊性,使得网页只能被用户访问后才能被动执行,然后处理相应的业务,但是有时候我们也需要某些组件去保持在后台运行,即使用户不访问也能在后台不断处理数据,而不是又去写一个普通的java程序来执行这项业务,这里我就使用servlet组件来实现这个功能。
2、实现原理
前面我已经说了,web应用只能被用户访问后才能执行,这一点是无法改变的。因此,如果要让servlet程序在后台自己循环运行,那就只能直接访问自己,而且为了不导致栈溢出,我们不能使用递归实现,这里选择使用分线程完成这个功能。
3、实现步骤
3.1、导入依赖
这里我是在maven项目中实现的,首先需要导入httpclient框架的依赖,后面要用到,如果不是maven项目中请导入对应的jar包,依赖版本如下:
<!--httpclient爬虫框架引入-->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
3.2、创建启动和停止的标志
在一个独立的servlet程序在定义如下两个静态变量用于开启后台运行服务和测试:
private static int id=0;//执行次