こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

StrutsでPOSTのデータ(リクエストボディ)を取得する

StrutsでPOSTで送ったデータを取得する方法がわかりません。
メッセージボディのデータ
param1=aaaa&param2=bbbb
の文字列を取得したいと考えています。

executeメソッドの中で
ServletInputStream is = request.getInputStream();
byte[] buff = new byte[4096];
int len = is.readLine(buff,0,4096);
を行っても
lenが-1になってしまいます。

どなたか解決方法を教えていただければと思います。
よろしくお願いします。

投稿日時 - 2007-07-09 11:21:12

QNo.3151991

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

 すべてのパラメータをパラメータ名にかかわらず取得するには、
getParameterMapが使えます。
 以下は、送られてきたパラメータすべてを表示するJSPのサンプルです。

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>All Param</title>
</head>
<body>
<%

java.util.Iterator PA = request.getParameterMap().entrySet().iterator();
StringBuffer SB = new StringBuffer();
boolean F = true;

while (PA.hasNext()) {
if (F) {
SB.append("?");
F = false;
}
else SB.append("&");
java.util.Map.Entry EN = (java.util.Map.Entry)PA.next();
for (int i = 0; i < ((String[])EN.getValue()).length; i ++) {
out.print(EN.getKey() + "=" + ((String[])EN.getValue())[i] + "<br>");
SB.append(EN.getKey() + "=" + ((String[])EN.getValue())[i]);
};
};

out.print(SB.toString() + "<br>");

%>

<form action="http://localhost:8080/minnaservlet/jsps/postparam.jsp" method="POST">
<input type="radio" name="ra" value="1" checked>1
<input type="radio" name="ra" value="2">2
<input type="radio" name="ra" value="3">3<br>
<input type="checkbox" name="cb">check<br>
<input type="text" name="tx"><input type="text" name="tx"><br>
<input type="submit" value="send">
</form>

</body>
</html>

投稿日時 - 2008-10-19 13:40:58

ANo.2

補足

回答がりがとうございます。

ただ、getQueryStringではGETのパラメータは取得できても
POSTのパラメータを取得することができません。

POSTのパラメータを文字列として取得できる方法があると助かります。

投稿日時 - 2007-07-10 10:27:23

ANo.1

HttpServletRequest の getParameter で取れると思います.

http://www.jajakarta.org/tomcat/servletapi/servletapi-4.0/docs-ja/javax/servlet/ServletRequest.html#getParameter(java.lang.String)

投稿日時 - 2007-07-09 13:02:04

補足

回答ありがとうございます。

ただ、getParameterで取得するのではなく

param1=aaaa&param2=bbbb
という形のまま文字列で取得したいと考えています。

投稿日時 - 2007-07-09 15:21:50

あなたにオススメの質問