在 jsp 文件中将 Content-Type 设置为 application/json

2022-09-01 03:38:24

我创建了一些jsp文件,该文件返回一些json字符串作为响应。但是我看到内容类型自动设置为txt

我的 jsp 代码看起来像

<%@ page import="java.util.Random" %>
<%@ page language="java" %>
<%@ page session="false" %>

<%
  String retVal = "// some json string";

     int millis = new Random().nextInt(1000);
     //    System.out.println("sleeping for " + millis + " millis");
     Thread.sleep(millis);
%>
<%=retVal%>

如何执行类似操作

setHeader("Content-Type", "application/json");

在这个例子中?


答案 1

您可以通过Page指令来做。

例如:

<%@ page language="java" contentType="application/json; charset=UTF-8"
    pageEncoding="UTF-8"%>
  • contentType=“mimeType [ ;charset=characterSet ]” |“text/html;charset=ISO-8859-1”

JSP 文件用于发送到客户端的响应的 MIME 类型和字符编码。可以使用对 JSP 容器有效的任何 MIME 类型或字符集。默认 MIME 类型为 text/html,默认字符集为 ISO-8859-1。


答案 2

试试这段代码,它也应该工作

<%
    //response.setContentType("Content-Type", "application/json"); // this will fail compilation
    response.setContentType("application/json"); //fixed
%>

推荐