- ベストアンサー
getParameter and スペース
HTMLフォームのテキストフィールドに「 AAA△BBB 」と入っているとします。 HTMLフォームから送信されたデータをサーブレットを受け取る為に getParameter() メソッドを使用すると 「AAA」と取得されます。 どうも△(半角スペース)が途中に存在するとそれ以降の値が取れません。(全 角スペースはまだ試していません) AAA△BBB を取得するにはどうしたらよいのでしょうか?
- みんなの回答 (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>"); } }
お礼
getParameterする文字のエンコーディングを すると直りました。 ソースまで表示していただいてありがとうございました。