2

直至现在; 我们的 servlet 仅用于支持application/json作为输出格式。实际上; 我们刚刚将输出返回为application/json;不考虑用户的要求:(

往前走; 我们将支持多种输出格式:json/xml 等。我想知道;实现这一点的行业惯例是什么?我们只是getContentType()从 中读取HttpServletRequest并返回适当的数据格式吗?

4

1 回答 1

3

getContentType()返回Content-Type请求的标头值。这指定了 HTTP 请求正文的内容。不是它期望作为响应的内容类型。

HTTP 请求可以Accept设置标头

指定响应可接受的某些媒体类型。接受标头可用于指示请求特别限于一小组所需类型,例如对内嵌图像的请求。

用作

Accept: text/plain 
// or application/xml or a comma separated list for multiple types  (which you would have to parse)

从 中HttpServletRequest,您可以将其检索为

String responseContentType = request.getHeader("Accept");

JavadocHttpServletRequest#getHeader(String)这里

显然,如果您的客户端是浏览器,则更改标头有点困难。

于 2013-05-28T21:34:11.383 回答