如何使用OutputStreamWriter在同一浏览器窗口中编写流?

时间:2011-09-22 16:50:33

标签: java html http servlets

在服务器端代码中,我正在使用OutputStreamWriter编写一个字符串(在浏览器页面上编写)。这将写在一个新窗口中。我需要能够在同一个窗口中写这个。

该类扩展了HttpServlet,以下是代码的结构:

void foo(HttpServletResponse response...) {
...
    OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream());
    response.reset();
    response.setContentType("text/html");
    out.write("Hello World!"); // Or some html string
    out.flush();  
    out.close();
}    

1 个答案:

答案 0 :(得分:1)

服务器端(servlet)没有,也无法打开一个新窗口(幸运的是,否则用弹出窗口向客户端发送垃圾邮件会非常容易......)。客户端(浏览器)是唯一可以打开新窗口的人。您很可能在HTML或JavaScript中使用了以下结构之一,它将在新窗口中显示结果:

<form action="servleturl" target="_blank">

<a href="servleturl" target="_blank">

<script>window.open('servleturl', 'windowname');</script>

您需要删除 target="_blank"才能在当前窗口中获取响应,或者如果您使用的是JavaScript,则需要使用window.location = 'servleturl';


无关到具体问题,在servlet中发出HTML是一种不好的做法。改为使用JSP。

另见: