Vic*_*tor 5 java servlets response printwriter crystal-reports-2008
在此链接中,它说:处理用户生成报告HTML的请求,并将HTML直接写入响应对象.现在在我的代码中,我有:
PrintWriter out = response.getWriter();
crystalReportViewer.processHttpRequest(request, response, context,null);
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,processHttpRequest遗嘱本身会做类似的事情response.getWriter().print(.....).
那么创建2个实例的代码是PrintWriter什么?
响应对象每次都会返回同一个编写器.您可以互换使用这些作者:
final PrintWriter writerA = response.getWriter();
final PrintWriter writerB = response.getWriter();
writerA.println("A1");
writerB.println("B1");
writerA.println("A2");
writerB.println("B2");
Run Code Online (Sandbox Code Playgroud)
输出是预期的,因为writerA并且writerB实际上指向完全相同的实例PrintWriter.
我不知道在规范中是否这样说,Javadoc只说:
可以调用此方法或getOutputStream()来编写正文,而不是两者.
据说你的代码不安全有两个原因:
crystalReportViewer可能会打电话response.getOutputStream()打破上面引用的合同
如果你先打印一些东西,然后传递response给crystalReportViewer你的机会,那么你的输出会打破crystalReportViewer输出,因为它会被预先添加.
| 归档时间: |
|
| 查看次数: |
35237 次 |
| 最近记录: |