<!-- webapps/sample-servlet/form.html --> <!-- http://localhost:8080/sample-servlet/form.html でアクセスできます。 --><HTML> <HEAD> <TITLE>入力フォーム</TITLE> </HEAD> <BODY> <!-- 入力フォームです。 --> <FORM METHOD="POST" ACTION="servlet/SampleServlet"> 名前:<INPUT TYPE="text" NAME="name" SIZE="10"><BR> <INPUT TYPE="submit" VALUE="実行"><BR> </FORM> </BODY> </HTML> // webapps/sample-servlet/WEB-INF/src/SampleServlet.java // http://localhost:8080/sample-servlet/servlet/SampleServlet でアクセスできます。 // このサンプルプログラムは「サーブレット」の項目に書かれている準備を行ってから使用してください。 import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import bean.SampleBean; /** * サーブレットのテスト。 */ public class SampleServlet extends HttpServlet { /** * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。 */ public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { // Content-Typeをセット。 response.setContentType( "text/html;charset=Windows-31J" ); // 呼び出した際のURLを取得します。 StringBuffer requestURL = request.getRequestURL(); System.out.println( requestURL.toString() ); // http://localhost:8080/sample-servlet/servlet/SampleServlet // リクエストのHTTPメソッドを取得します。 String method = request.getMethod(); System.out.println( method ); // POST // 入力値の文字コードをセットします。 // HTMLの文字コードを指定してください。 request.setCharacterEncoding( "Windows-31J" ); // 入力フォームから入力された値を取得します。 String name = request.getParameter( "name" ); System.out.println( name ); // (入力フォームの「名前:」に入力された文字列) // SampleBean Java Beanクラスを作成し、JSPで使えるようにセットします。 SampleBean sampleBean = new SampleBean(); sampleBean.setData( 100 ); request.setAttribute( "sample_bean", sampleBean ); // サーブレットコンテキストを取得します。 ServletContext servletContext = getServletContext(); // リクエストディスパッチャーを取得します。 RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher( "/WEB-INF/jsp/sample.jsp" ); // 指定したJSPへと転送します。 requestDispatcher.forward( request, response ); } /** * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。 */ protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { // でも面倒なのでdoGet()メソッドに丸投げします。 doGet( request, response ); } } // webapps/sample-servlet/WEB-INF/src/bean/SampleBean.java package bean; // Java Beanは、JSPで使用する関係でパッケージに入れる必要があります。 // ここではbeanパッケージに入れます。 // 一応、Java Beanは直列化可能にする必要があります。 // 実際には必要ない場合も多いですが。 import java.io.Serializable; /** * SampleServletで使用するJava Beanクラスです。 */ public class SampleBean implements Serializable { /** * プロパティ。 */ private int data; /** * コンストラクタ。 */ public SampleBean() { data = 0; } /** * プロパティのgetter。 */ public int getData() { return data; } /** * プロパティのsetter。 */ public void setData( int value ) { this.data = value; } }