我打算進行流式處理。我有.jsp文件,並在.jsp文件的最後,我包括使用我的異步的Servlet下面的代碼:Servlet 3.0中的AsyncContext無限瀏覽器加載
<jsp:include page = '/simple' flush = 'true' />
所以我想在整個頁面加載打開無限的異步請求,這將處理異步響應。
這裏是我的servlet代碼:
public class SimpleAsyncServlet extends HttpServlet {
public static AsyncContext ctx;
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
ctx = req.startAsync();
ctx.setTimeout(0);
}
}
其他Java類我使用的是靜態SimpleAsyncServlet.ctx.getResponse.getWriter()給println一些JavaScript代碼到當前頁面。它沒有任何問題,但瀏覽器不斷顯示它正在加載。根據Async的理念頁面應該加載和這個異步請求應該保持活着在後臺和..這就是它,但沒有....瀏覽器不斷加載頁面直到永遠(超時是0,COS我想有無限的開放reqeust)
我在哪裏錯了,如何在沒有瀏覽器加載的情況下發出此永久請求?
P.S.我試圖直接從url(localhost .../simple)訪問我的servlet,然後我看不到任何內容打印在頁面上。它繼續加載直到永遠。
我有corrent它。它是flush ='true'。我有: @ javax.servlet.annotation.WebServlet(// servlet名稱 名稱= 「簡單」, //的servlet URL模式 值= { 「/簡單」},// 異步支持所需 asyncSupported =真正); 我也試過req.startAsync(req,res); 沒有幫助。 –