Java 在jsp文件中将内容类型设置为application/json
我创建了一些jsp文件,该文件返回一些json字符串作为响应。但是我看到内容类型被自动设置为txt 我的jsp代码看起来像Java 在jsp文件中将内容类型设置为application/json,java,http,jsp,http-headers,content-type,Java,Http,Jsp,Http Headers,Content Type,我创建了一些jsp文件,该文件返回一些json字符串作为响应。但是我看到内容类型被自动设置为txt 我的jsp代码看起来像 <%@ page import="java.util.Random" %> <%@ page language="java" %> <%@ page session="false" %> <% String retVal = "// some json string"; int millis = new Rando
<%@ 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%>
在本例中?您可以通过
例如:
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
- contentType=“mimeType[;charset=characterSet]”| “text/html;字符集=ISO-8859-1”
试试这段代码,它应该也能工作
<%
//response.setContentType("Content-Type", "application/json"); // this will fail compilation
response.setContentType("application/json"); //fixed
%>
@Petr Mensik&kensen john 谢谢,我不能使用页面指令,因为我必须根据一些URL参数设置不同的内容类型。我将把代码粘贴到这里,因为它与JSON非常常见:
<%
String callback = request.getParameter("callback");
response.setCharacterEncoding("UTF-8");
if (callback != null) {
// Equivalent to: <@page contentType="text/javascript" pageEncoding="UTF-8">
response.setContentType("text/javascript");
} else {
// Equivalent to: <@page contentType="application/json" pageEncoding="UTF-8">
response.setContentType("application/json");
}
[...]
String output = "";
if (callback != null) {
output += callback + "(";
}
output += jsonObj.toString();
if (callback != null) {
output += ");";
}
%>
<%=output %>
内容类型为“text/javascript”
未提供回调时,返回:
callback({...JSON stuff...});
{...JSON stuff...}
使用内容类型“application/json”但这会引发类似java.lang.IllegalStateException的异常:已为此响应调用getOutputStream()。请确保在调用
setContentType(…)
之前,不要向客户端输出任何单个字符(否则,在此之前内容类型已被修复)。尤其要注意%>之后的空格或换行符,例如,将第一行的结尾%>移动到第二行,然后立即开始下一行。谢谢,我正在搜索类似的内容链接已失效
{...JSON stuff...}