技術空間

Java

リクエストのパラメータ、ヘッダ、属性を全て出力する


TOP > Java > リクエストのパラメータ、ヘッダ、属性を全て出力する



■HttpServletRequestの全リクエストパラメータを出力

javax.servlet.http.HttpServletRequest (ServletRequest)のリクエストパラメータ関連のメソッドには以下がある。

メソッド名戻り値型説明
getParameterNames()Enumeration全パラメータ名をEnumerationで取得
getParameterMap()Map全パラメータ値をMapで取得
getParameterValues
(String name)
String[]全パラメータ値をString[]で取得
getParameter
(String name)
Stringパラメータ値をStringで取得

全てのパラメータを出力する場合は以下のようにする。

コード

StringBuilder sb = new StringBuilder();

// 全リクエストパラメータ名を取得
Enumeration<?> paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {

    // パラメータ名を取得
    String paramName = (String)paramNames.nextElement();
    sb.append(paramName);
    sb.append("=");

    // パラメータ値を取得
    String[] paramValues = request.getParameterValues(paramName);
    for (int i = 0; i < paramValues.length; i++) {
        if(i > 0){
            sb.append(",");
        }
        sb.append(paramValues[i]);
    }
    
    sb.append("\n");
}

System.out.print(sb);

出力結果
param1=value1
param2=value2,value3
■HttpServletRequestの全リクエストヘッダを出力

javax.servlet.http.HttpServletRequestリクエストヘッダ関連のメソッドには以下がある。

メソッド名戻り値型説明
getHeader
(String name)
Stringヘッダ値をStringで取得
getHeaderNames()Enumeration全ヘッダ名をEnumerationで取得
getHeaders
(String name)
Enumerationヘッダ値をEnumerationで取得

全てのヘッダを出力する場合は以下のようにする。

コード

StringBuilder sb = new StringBuilder();

// 全リクエストヘッダ名を取得
Enumeration<?> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {

    // ヘッダ名と値を取得
    String headerName = (String)headerNames.nextElement();
    String headerValue = request.getHeader(headerName);
    
    sb.append(headerName);
    sb.append("=");
    sb.append(headerValue);
    sb.append("\n");
}

System.out.print(sb);

出力結果
host=localhost:8080
user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language=ja,en-US;q=0.7,en;q=0.3
accept-encoding=gzip, deflate
referer=http://localhost:8080/test/test.jsp
cookie=JSESSIONID=B8AACAE6ABED2AE672330EDCBF6DA550
connection=keep-alive
content-type=application/x-www-form-urlencoded
content-length=9
■HttpServletRequestの全リクエスト属性を出力

javax.servlet.http.HttpServletRequestリクエスト属性関連のメソッドには以下がある。

メソッド名戻り値型説明
getAttributeNames()Enumeration全属性名をEnumerationで取得
getAttribute
(String name)
Objectパラメータ値をObjectで取得
setAttribute
(String name, Object o)
void属性値を設定
removeAttribute
(String name)
void属性値を削除

全てのパラメータを出力する場合は以下のようにする。

コード

StringBuilder sb = new StringBuilder();

// 全リクエスト属性名を取得
Enumeratio<?> attrNames = request.getAttributeNames();
while (attrNames.hasMoreElements()) {
    
    // 属性名と値を取得
    String attrName = (String)attrNames.nextElement();
    Object attrValue = request.getAttribute(attrName);
    
    sb.append(attrName);
    sb.append("=");
    sb.append(attrValue);
    sb.append("\n");
}

System.out.print(sb);

出力結果
attrName1=attrValue1
attrName2=attrValue2


TOP > Java > リクエストのパラメータ、ヘッダ、属性を全て出力する

Tweet ̃Gg[͂ĂȃubN}[Nɒlj
技術空間