Java 支持两种输出格式的servlet的标准实践

Java 支持两种输出格式的servlet的标准实践,java,servlets,Java,Servlets,直到现在;我们的servlet只支持application/json作为输出格式。事实上我们只是将输出返回为application/json;不考虑用户请求的内容:( 接下来,我们将支持多种输出格式:json/xml等。 我想知道,行业惯例是什么?我们是否只是从HttpServletRequest读取getContentType(),然后返回适当的数据格式?getContentType()返回请求的内容类型头值。这指定HTTP请求正文的内容,而不是它作为响应所期望的内容类型 HTTP请求可以设置

直到现在;我们的servlet只支持
application/json
作为输出格式。事实上我们只是将输出返回为
application/json
;不考虑用户请求的内容:(

接下来,我们将支持多种输出格式:json/xml等。 我想知道,行业惯例是什么?我们是否只是从
HttpServletRequest
读取
getContentType()
,然后返回适当的数据格式?

getContentType()
返回请求的
内容类型
头值。这指定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");
HttpServletRequest#getHeader(String)的Javadoc是


显然,如果您的客户端是浏览器,那么更改标题就有点困难。

您正在查找我使用过的大多数web服务。请使用
GET
参数示例:
?format=json
?format=xml