java content-type设置_关于java:在jsp文件中将Content-Type设置为application / json

我创建了一些jsp文件,作为响应返回一些json字符串。 但我发现Content-Type自动设置为txt

我的jsp代码看起来像

String retVal ="// some json string";

int millis = new Random().nextInt(1000);

//    System.out.println("sleeping for" + millis +" millis");

Thread.sleep(millis);

%>

我怎样才能表现出类似的东西

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

在这个例子中?

你可以通过Page指令来完成。

例如:

pageEncoding="UTF-8"%>

contentType ="mimeType [; charset = characterSet]"|

"text / html的;字符集= ISO-8859-1"

The MIME type and character encoding the JSP file uses for the

response it sends to the client. You can use any MIME type or

character set that are valid for the JSP container. The default MIME

type is text/html, and the default character set is ISO-8859-1.

链接已经死了

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

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

response.setContentType("application/json"); //fixed

%>

你为什么要投票?

但这会引发异常,例如java.lang.IllegalStateException:已经为此响应调用了getOutputStream()

确保在调用setContentType(..)之前不向客户端输出任何单个字符(否则之前内容类型已经修复)。 尤其要注意%>之后的空格或换行符,例如 write将第一行的结束%>移动到第二行,然后立即开始,然后立即使用下一行

@Petr Mensik&kensen john

谢谢,我无法使用页面指令,因为我必须根据某些URL参数设置不同的内容类型。 我会在这里粘贴我的代码,因为它与JSON很常见:

String callback = request.getParameter("callback");

response.setCharacterEncoding("UTF-8");

if (callback != null) {

// Equivalent to:

response.setContentType("text/javascript");

} else {

// Equivalent to:

response.setContentType("application/json");

}

[...]

String output ="";

if (callback != null) {

output += callback +"(";

}

output += jsonObj.toString();

if (callback != null) {

output +=");";

}

%>

提供回调时,返回:

callback({...JSON stuff...});

内容类型为"text / javascript"

如果未提供回调,则返回:

{...JSON stuff...}

内容类型为"application / json"

谢谢,我正在寻找这样的东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值