2017-02-27 5 views
0

私はHttpServletRequestで作業しており、そのオブジェクトからすべてのヘッダーと情報を出力する必要があります。HttpServletRequestのヘッダーとゲッター

sb.append("getAuthType").append("=").append(servletRequest.getAuthType()); 

私はgetContentType()から例Header.content-typeContentTypeの重複の引数を取得しています:私はgetHeadersNames()

Enumeration<String> headerEnums = servletRequest.getHeaderNames(); 
while (headerEnums.hasMoreElements()) { 
    String elementName = headerEnums.nextElement(); 
    String elementValue = servletRequest.getHeader(elementName); 
    sb.append("Header.").append(elementName).append("=").append(elementValue).append(", "); 
} 

を使用していますが、その後、私は例えば、ゲッターを使用して、すべてのパラメータを取得していますヘッダーの

私の質問:

  1. 出力に良い方法headersattributesとゲッターを超える反復せずに、すべてのservletRequestのパラメータがありますか? toString()のように?
  2. 一時的なセットを持たずに重複した引数を取得しないようにするにはどうすればよいですか?
  3. ヘッダー内にゲッターが空のヘッダーを含めることは可能ですか?例:content-typeがヘッダーに存在しますが、getContentType()がヌルですか?
+0

http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getParameterMap()は、すべてのリクエストパラメータをマップとして返​​します。 – ramp

+1

@ramp私はOPがすべて、つまりクエリのパラメータ、ヘッダなどを返すメソッドを望んでいると確信しています。 –

+0

@SvetlinZarev、投稿とコードはすべてヘッダーに関するものです。私はちょうど質問に文字通り答えました:) – ramp

答えて

1

私の答えはApache Tomcat(8.5)の文脈にあります。

ゲッターが空のヘッダー内にヘッダーを入れることは可能ですか?たとえば、コンテンツタイプはヘッダーにありますが、getContentType()nullですか?

バグがない限り、これはできません。これらのメソッドは、ヘッダーを含む同じ内部データ構造を照会します。

一時的な設定をせずに重複する引数を取得することを避けるにはどうすればよいですか?

同じデータ構造を2回クエリしています。つまり、同じことを2度は求めません。ヘッダーを使用するか、HttpServletRequestのメソッドを使用してください。唯一の違いは、メソッドを使用するとデフォルトの値(Content-Lengthが不明な場合は-1など)が得られ、ヘッダーがない場合はNULLが返されることです。

すべてのServletRequestパラメータをヘッダー、属性、ゲッターの繰り返しなしで出力するには良い方法がありますか? like toString()

少なくとも私はそのような標準的な方法を知らない。

関連する問題