异步处理代码
package cn.yellowimg.web.servlet;
import java.io.IOException;
import javax.servlet.AsyncContext;
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 AServlet
*/
@WebServlet(urlPatterns = "/AServlet", asyncSupported = true)
public class AServlet extends HttpServlet {
public void doGet(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html;charset=utf-8");
final AsyncContext ac = request.startAsync(request, response);
ac.start(new Runnable() {
public void run() {
print("现在开始<br/>", response);
sleep(2000);
for (char i = 'A'; i <= 'Z'; i++) {
String word = i + "";
print(word + "<br/>", response);
sleep(225);
}
ac.complete();
}
});
}
public void print(String text, HttpServletResponse response) {
try {
response.getWriter().print(text);
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public void sleep(long ms) {
try {
Thread.sleep(ms);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}