我已经创建了一个类MyClass,它打算向JSP输出大量文本.我认为MyClass对象使用页面的输出流更好.这是一个好/可能的想法吗?
在测试可能的方法来做到这一点......
这些输出文本,但它显示在页面正文之前:
response.getWriter().append("test1");
response.getWriter().println("test2");
response.getWriter().write("test3");
Run Code Online (Sandbox Code Playgroud)
这个错误告诉我输出流已经得到了:
response.getOutputStream().println("test4");
Run Code Online (Sandbox Code Playgroud)
response.getWriter()会给你不同的编写器而不是JSP中使用的编写器.如果要在JSP页面使用时写入同一个编写器,则需要使用outJSP页面中的变量.区别在于JSP在标准之上使用缓冲response.getWriter().这就是为什么你看到你的数据写response.getWriter()在JSP体之前的原因.
你不能混用response.getWriter()和response.getOutputStream().outJSP中的变量是获得的JspWriter实例包装编写器,response.getWriter()因此调用response.getOutputStream()将失败.
你应该在你的JSP中做什么:
<%
new MyClass().writeToWriter(out);
%>
Run Code Online (Sandbox Code Playgroud)
在MyClass中:
public void writeToWriter(Writer w) {
w.println("My data appended to correct writer");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5973 次 |
| 最近记录: |