servlets - 使用 HttpServletResponse 发送 .json 文件
问题描述
我有一个 .json 文件,我想根据 Servlet方法中的特定请求将其发送到客户端浏览器。doGet()
我的 Java 文件 IO 有点生锈,所以我很难弄清楚什么是正确的方法。我认为它是这样的:
File myfile = new File(mypath);
OutputStream out = response.getOutputStream();
out.print(new FileInputStream(myfile).read());
或类似的东西?
解决方案
只需将您的 HTTP 响应内容类型设置为text/plain
您的HttpServletResponse
参数并写入响应。示例如下所示:
package com.giorgi.controller;
import javax.servlet.http.*;
import java.io.IOException;
import java.nio.file.*;
import java.util.List;
import java.util.stream.Collectors;
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws IOException {
response.setContentType("text/plain");
List<String> file = Files.readAllLines(Paths.get("c:\\path\to\your\file.json"));
String data = file.stream().collect(Collectors.joining());
response.getWriter().write(data);
}
}
setContentType(String type)设置发送给客户端的响应的内容类型。
推荐阅读
- ios - iOS 11.0 推送视图控制器与 navigationItem.searchController 的问题
- c# - 进行 Windows 身份验证时首先触发什么功能
- python - 我想在python中改变图像的颜色
- scala - 如何在 Spark 中使用 GraphFrames 向 Neo4j 图形添加关系
- wordpress - 仅获取循环中的帖子,其中 id 保存在其他自定义帖子元数据中
- ibm-watson - Q.Watson Knowledge Studio 预注释错误
- python - 根据另一个数据帧上的日期条件从一个数据帧中删除行
- jquery - 在 fullPage.js 中将导航栏链接向右对齐
- python - 使用 MSS 截取许多屏幕截图时,内存快速填满并导致 python 崩溃
- java - 每次按下按钮时导致我的应用程序崩溃的原因是什么?