到目前为止;我们的servlet仅用于支持application/json
作为输出格式。事实上;我们刚刚将输出返回为application/json
;无需用户要求:(
前进;我们将支持多种输出格式:json / xml等。
我在想;启用此功能的行业惯例是什么?我们只是从getContentType()
读取HttpServletRequest
并返回相应的数据格式吗?
答案 0 :(得分:3)
getContentType()
返回请求的Content-Type
标头值。这指定了HTTP请求正文的内容。不是它期望作为回应的内容类型。
HTTP请求可以设置Accept
标头
指定响应可接受的某些媒体类型。 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");
HttpServletRequest#getHeader(String)
的Javadoc是here。
显然,如果您的客户端是浏览器,则更改标题会有点困难。