////////////////////////////////////////////////////////////////////////////////
//  << sv121b.java >>
//
// サーブレット(2):フォームから入力(POST指定)
//
//  フォームの入力欄に入力されたデータを表示する。
//
// ●文字化け対策
//    setCharacterEncoding("JISAutoDetect")メソッドを使うと、Webブラウザから入力
//  される文字コードを自動的に認識し、文字化けを防ぐことができる。
//
//      request.setCharacterEncoding("JISAutoDetect")
//   String s = request.getParameter("formタグ側のname項目");
//
// ●ServletRequestインターフェースのメソッド
//    public void setCharacterEncoding(String c)
//                          throws UnsupportedEncodingException
//   機能:要求の文字コードをcとする。
//
// ●GETとPOST
//  GETを指定すると、サーブレットのURLにデータが付加されてWebサーバに
//  送信される。従って、比較的短く機密を要しないデータの送信に用いられる。
//  他方、POST指定は、比較的長く機密を要するデータの送信に用いられる。
//
// ●起動法
//  (1)Javaファイル(sv121b.java)をコンパイルし、classファイル(sv121b.class)を
//       作成する。
//       ただし、Javaファイル(sv121bjava)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv121b.java
//     classファイル(sv121b.class)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv121b.class
//       に保存する。
//    (2)入力フォームで、
//         URL(http://localhost:8080/SV/servlet/sv121b)
//       を指定する。
//
////////////////////////////////////////////////////////////////////////////////

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class sv121b extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException,IOException {

    // フォームのデータを取得。
    request.setCharacterEncoding("JISAutoDetect");
    String s = request.getParameter("f1");

    // コンテンツタイプの指定。
    response.setContentType("text/html; charset=Shift_JIS");

    // HTML文書の出力。
    PrintWriter pw = response.getWriter();
    pw.println("<html>"
          + "<head><title>サーブレット</title></head>"
          + "<body>"
          + "<form action=http://localhost:8080/SV/servlet/sv121b method=POST>"
          + "名前を入力してください:<input type=text size=30 name=f1><br>"
          + "<input type=submit value=送信>"
          + "</form>");
    if( s != null ) { pw.println(s + "さんですね"); }
    pw.println("</body>" 
            + "</html>"); 
    pw.flush();
    pw.close();
  }
}
入力フォーム
<form action=http://localhost:8080/SV/servlet/sv121b method=POST>
  <input type=submit value=実行>
</form>
実行結果

実行後




送信後