在Servlet的init方法中建立執行緒
阿新 • • 發佈:2022-05-03
servlet程式碼如下:
package com.weichat.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //測試執行執行緒的類 public class TestRunThreadServlet extends HttpServlet implements Runnable{ //init servlet public void init() throws ServletException { System.out.println("開始init..."); Thread thread = new Thread(new TestRunThreadServlet()); thread.start(); } //業務類 public void threadMethod(){ System.out.println("start thread"); try { System.out.println("執行緒開始休眠"); Thread.sleep(1000*3); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("本次執行完畢"); } @Override public void run() { while(true){ threadMethod(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("come in post"); System.out.println("go out post"); } }
web.xml中新增servlet註冊
<servlet> <servlet-name>TestRunThreadServlet </servlet-name> <display-name>TestRunThreadServlet </display-name> <servlet-class>com.hseact.fecp.servlet.TestRunThreadServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>