– サーブレットや JSP からクラスを抽出している際に、パラメータを使っているものを分離しようとして、 POJO に ServletRequest を渡すのはどうかなと思っていたところ、ちゃんとメソッドが提供されていた。
<http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html#getParameterMap()>
– ServletRequest#getParameterMap()
戻り値:
キーとしてパラメータ名、マップ値としてパラメータ値が格納された不変の java.util.Map。パラメータマップ内のキーは String 型。パラメータマップ内の値は String の配列型
たとえば次のコードが書かれたページ(test)にリクエストを送るとする:
// Arrays.toString(String[]) を利用しているため JDK5.0 以上でしか動かない。
out.println(“<table>”);
for(Iterator it = request.getParameterMap().entrySet().iterator(); it.hasNext();){
Map.Entry entry = (Map.Entry) it.next();
out.println(“<tr><td>”+entry.getKey()+”</td><td>”+Arrays.toString((String[])entry.getValue())+”</td></tr>”);
}
out.println(“</table>”);
結果は次の通り:
test?a=foo:
a [foo]
test?a&b=boo&b=woo
a []
b [boo, woo]