2

今まで; 私たちのサーブレットはapplication/json、出力形式としてのみサポートしていました。実際には; 出力を次のように返しましたapplication/json。ユーザーが要求したものに関係なく:(

今後; json/xml など、複数の出力形式をサポートする予定です。これを可能にする業界慣行は何ですか?getContentType()からを読み取ってHttpServletRequest、適切なデータ形式を返すだけですか?

4

1 に答える 1

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");

の JavadocHttpServletRequest#getHeader(String)こちらです。

明らかに、クライアントがブラウザーの場合、ヘッダーを変更するのは少し難しいです。

于 2013-05-28T21:34:11.383 に答える