我正在研究基于Java EE的应用程序,我们在那里大量使用AJAX。 在那里,我们使用两种技术来编写ajax响应。
1)传递一些数据throgh ajax
res.setContentType("text/xml");
res.setHeader("Cache-Control", "no-cache");
PrintWriter writer = null;
writer = res.getWriter();
StringBuffer xmlDoc = new StringBuffer("<?xml version='1.0'?>");
xmlDoc.append("<selectChoice>");
xmlDoc.append("<selectElement>");
writer.print(xmlDoc.toString());
writer.flush();
writer.close();
2)通过ajax发送完整的jsp片段
首先是ajax调用servlet, 然后servlet设置一些变量会话, 然后转发到jsp页面呈现先前存储的变量
RequestDispatcher disp = context.getRequestDispatcher(APP_pagePath + page);
disp.forward((HttpServletRequest)req, res);
在第一个作为标准练习我们使用flush()方法。然后我的问题是它是如何处理第二种情况(dispatcher.forward)。在那里我们没有显式flush()。你们可以解释一下这两者之间的区别以及第二种情况下刷新的处理方式。