首页 > 解决方案 > 使用 HttpServletResponse 发送 .json 文件

问题描述

我有一个 .json 文件,我想根据 Servlet方法中的特定请求将其发送到客户端浏览器。doGet()我的 Java 文件 IO 有点生锈,所以我很难弄清楚什么是正确的方法。我认为它是这样的:

File myfile = new File(mypath);
OutputStream out = response.getOutputStream();
out.print(new FileInputStream(myfile).read());

或类似的东西?

标签: servlets

解决方案


只需将您的 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)设置发送给客户端的响应的内容类型。


推荐阅读