多くの処理を行うサーブレットからhttp要求を処理し、要求のタイムアウトまでに受信データの確認を返す必要がある場合があります。
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;
/**
* Servlet implementation class Processing
*/
@WebServlet("/Processing")
public class Processing extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Processing() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// do the heavy data processing which takes lots of time.lets assume large
//amount of data to be added to data base.
}
}).start();
//response back to client by informing data received before request //time out on client side
response.getWriter().write("request receive sucessfully");
}
}