• ベストアンサー

getParameter and スペース

HTMLフォームのテキストフィールドに「 AAA△BBB 」と入っているとします。 HTMLフォームから送信されたデータをサーブレットを受け取る為に getParameter() メソッドを使用すると 「AAA」と取得されます。 どうも△(半角スペース)が途中に存在するとそれ以降の値が取れません。(全 角スペースはまだ試していません) AAA△BBB を取得するにはどうしたらよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ZIGEN
  • ベストアンサー率100% (5/5)
回答No.1

実際に試してみたのですが、AAA△BBB のような間に 半角空白があっても、正しく取得できましたが・・・・ 以下に試したサンプルをつけます。 ----- import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class Servlet1 extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=Shift_JIS"; /**グローバル変数の初期化*/ public void init(ServletConfig config) throws ServletException { super.init(config); } /**HTTP Get リクエストの処理*/ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Servlet1</title></head>"); out.println("<body>"); out.println("<form method=\"POST\" action=\"Servlet1\">"); out.println("<input type=\"text\" name=\"name\" size=\"20\">"); out.println("<input type=\"submit\" value=\"送信\" name=\"B1\""); out.println("サーブレットは GET を受信しました。これは応答です。"); out.println("</form>"); out.println("</body></html>"); } /**HTTP Post リクエストの処理*/ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); String name = request.getParameter("name"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Servlet1</title></head>"); out.println("<body>"); out.println("取得したフォームデータは " + name); out.println("</body></html>"); } }

suigaku
質問者

お礼

getParameterする文字のエンコーディングを すると直りました。 ソースまで表示していただいてありがとうございました。

関連するQ&A

専門家に質問してみよう