Tomcat启动后再启动另一个线程执行别的任务与Servlet获取Spring中的参数

年后的第一篇,先上代码:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

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

//此为Servlet类
public class NucleonEventProcessor extends HttpServlet {
private static final long serialVersionUID=-9045451275234606838L;
int num=0;//保证线程启动一次后就不再启动


Timer timer=new Timer();

//以下两个为了从spring中获取注入的service值
ServletContext servletContext=null;
WebApplicationContext webApplicationContext=null;

//以下为某个Service
//PersonService personService=null;


/**
* Constructor of the object.
*/
public NucleonEventProcessor() {
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
FutureTask<String> task=new FutureTask<String>(new Callable<String>() {

@Override
public String call() throws Exception {
// TODO Auto-generated method stub
start();
return "Collection Completed";
}
});
servletContext=getServletContext();
webApplicationContext=WebApplicationContextUtils.getWebApplicationContext(servletContext);
//获取spring配置文件中的service
//personService=(PersonService)webApplicationContext.getBean("personService");

//线程启动
new Thread(task).start();
}
private void start(){
//要执行的方法
if(num=0){
timeschedule();
num++;
}
}
public void timeschedule(){
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
//要执行的方法
start();
}
}, 1000,2000);//1秒后执行,每隔2秒执行一次
}
}


上面的代码是整个类的代码,大部分是继续HttpServlet后自动生成的,重要的是
【1】init【2】timeschedule里边的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值