读书人

play2.0文档-面临java开发者(3)

发布时间: 2012-07-24 17:47:57 作者: rapoo

play2.0文档-面向java开发者(3)

处理应答


改变默认内容类型(?Content-Type)

?

result的内容类型会根据你指定的java值自动推断出来

例如:

Result?textResult?=?ok("Hello World!");

这将会自动的设置内容类型为?text/plain,而:

?Result?jsonResult?=?ok(jerksonObject);

将会设置内容类型为?application/json.

这是十分有用的,如果你想改变它,只需要调用as(newContentType)?方法来创建一个新的result:

?Result?htmlResult?=?ok("<h1>Hello World!</h1>").as("text/html");

你也可以设置HTTP应答的内容类型。


public?static?Result?index()?{

? ?response().setContentType("text/html");

? ?return?ok("<h1>Hello World!</h1>");

}


设置HTTP应答头

你可以添加(或更新)任何HTTP应答头:

public?static?Result?index()?{

? ? response().setContentType("text/html");

? ? response().setHeader(CACHE_CONTROL,?"max-age=3600");

? ? response().setHeader(ETAG,?"xxx");?return?ok("<h1>Hello World!</h1>");

}

?

注意 设置HTTP头会覆盖当前的值。

?

设置和删除cookies

Cookies只不过是HTTP头的特定格式,但是play 提供了一系列便利方法:

你可以很容易给HTTP应答添加一个Cookie:

response().setCookie("theme",?"blue");

你也可以删除已有的Cookie:

response().discardCookies("theme");

指定文本results 的字符编码

正确的处理字符编码对于文本类型的HTTP应答是非常重要的,Play默认用?utf-8?.

编码即用于把文本应答转换成相应的网络字节码,也为内容类型头添加恰当的?;charset=xxx?扩展

你可以在生成?Result?值的时候指定编码:

public?static?Result?index()?{

? ?response().setContentType("text/html; charset=iso-8859-1");

? ?return?ok("<h1>Hello World!</h1>",?"iso-8859-1");

}

?

读书人网 >开源软件

热点推荐