我正在开发一个基于 Java EE 的应用程序,我们在那里大量使用 AJAX。在那里,我们使用两种技术来编写 ajax 响应。
1)通过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设置一些变量session,然后转发到jsp页面渲染之前存储的变量
RequestDispatcher disp = context.getRequestDispatcher(APP_pagePath + page);
disp.forward((HttpServletRequest)req, res);
在第一个标准实践中,我们使用 flush() 方法。然后我的问题是它如何处理第二种情况(dispatcher.forward)。在那里我们没有显式地刷新()。你们能解释一下这两者之间的区别以及在第二种情况下如何处理冲洗。