在服务器端代码中,我正在使用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();
}
答案 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。