本例参考:http://blog.csdn.net/chenxiang0207/article/details/14054681/
我按照上面博文的思路重新走了一遍
项目结构如下图
/**
* AsyncServlet
*
* 支持异步处理的Servlet
* 页面中隐藏的iframe通过访问此Servlet来建立HTTP长连接
* 从而后台能实时的推送javascript代码给页面调用
*
*/
@WebServlet(urlPatterns = "/Async", asyncSupported = true)
public class AsyncServlet extends HttpServlet {
private static final long serialVersionUID = 822178713133426493L;
private final static int DEFAULT_TIME_OUT = 10 * 60 * 1000;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
AsyncContext actx = req.startAsync();
actx.setTimeout(DEFAULT_TIME_OUT);
actx.addListener(new AsyncListener() {
@Override
public void onComplete(AsyncEvent arg0) throws IOException {
// TODO Auto-generated method stub
ClientComet.getInstance().removeAsyncContext(actx);
System.out.println("AsyncListener-->onComplete");
}
@Override
public void onError(AsyncEvent arg0) throws IOExc