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

标签 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();
}    

最佳答案

服务器端(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。

另见:

关于java - 如何使用 OutputStreamWriter 在同一浏览器窗口中写入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518497/

相关文章:

java - 处理3.0科泰相机。图片无法保存

java - 从 Android 触发 Prolific Barcode Scanner 设备

java - 强力大整数分解

java - 了解 getIntExtra() 参数

html - 在 Angular 4 中将类切换为只有一个按钮

javascript - 如何利用鼠标悬停效果来改变背景颜色?

html - 固定顶部div

java - HAL+JSON 的正确媒体类型是什么?

http - HTTP负载均衡下的TCP连接和流量路由

javascript - Res.download() 使用 html 表单提交但不是 Axios post 调用