doPost
日本語 | 提示する |
英語 | do post |
ふりがな | どぅーぽすと |
フリガナ | ドゥーポスト |
ホームページを表示する時に呼び出されるメソッド。
正確には、HTTPメソッドのひとつ、POSTがリクエストとして渡された時に呼び出されるメソッド。
サーブレットのスーパークラスであるHttpServletクラスのdoPost()メソッドをオーバーライドしたもの。
「入力フォームに入力された情報を送信する」というリクエストを受け取ると、アプリケーションサーバーはリクエストのURLを元にサーブレットを探し、そのdoPost()メソッドを呼び出す。
ただし、入力フォームでもGETで送信することができるうえ、入力フォームの代わりにリクエストパラメーターとして渡すこともできるため、doPost()だけで処理できるものではない。
そのため、基本的には「doPost()メソッドからdoGet()メソッドを呼ぶ」ようにする。引数、戻り値、例外全て同じのため、そのまま呼び出し、doGet()メソッドで実装するのがいいだろう。
正確には、HTTPメソッドのひとつ、POSTがリクエストとして渡された時に呼び出されるメソッド。
サーブレットのスーパークラスであるHttpServletクラスのdoPost()メソッドをオーバーライドしたもの。
「入力フォームに入力された情報を送信する」というリクエストを受け取ると、アプリケーションサーバーはリクエストのURLを元にサーブレットを探し、そのdoPost()メソッドを呼び出す。
ただし、入力フォームでもGETで送信することができるうえ、入力フォームの代わりにリクエストパラメーターとして渡すこともできるため、doPost()だけで処理できるものではない。
そのため、基本的には「doPost()メソッドからdoGet()メソッドを呼ぶ」ようにする。引数、戻り値、例外全て同じのため、そのまま呼び出し、doGet()メソッドで実装するのがいいだろう。
参考サイト
<!-- 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.PrintWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* サーブレットのテスト。
*/
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" );
// 入力値の文字コードをセットします。
request.setCharacterEncoding( "Windows-31J" );
// 入力フォームから入力された値を取得します。
String name = request.getParameter( "name" );
System.out.println( name );
// (入力フォームの「名前:」に入力された文字列)
// HTML出力用のPrintWriterを取得します。
PrintWriter out = response.getWriter();
// HTMLを出力します。
out.println( "<html>" );
out.println( "<head>" );
out.println( "<title>サーブレットのテスト</title>" );
out.println( "</head>" );
out.println( "<body>" );
out.println( "入力された値:" );
out.println( name );
out.println( "</body>" );
out.println( "</html>" );
}
/**
* リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
*/
protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
{
// でも面倒なのでdoGet()メソッドに丸投げします。
doGet( request, response );
}
}
<!-- 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.PrintWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* サーブレットのテスト。
*/
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" );
// 入力値の文字コードをセットします。
request.setCharacterEncoding( "Windows-31J" );
// 入力フォームから入力された値を取得します。
String name = request.getParameter( "name" );
System.out.println( name );
// (入力フォームの「名前:」に入力された文字列)
// HTML出力用のPrintWriterを取得します。
PrintWriter out = response.getWriter();
// HTMLを出力します。
out.println( "<html>" );
out.println( "<head>" );
out.println( "<title>サーブレットのテスト</title>" );
out.println( "</head>" );
out.println( "<body>" );
out.println( "入力された値:" );
out.println( name );
out.println( "</body>" );
out.println( "</html>" );
}
/**
* リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
*/
protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
{
// でも面倒なのでdoGet()メソッドに丸投げします。
doGet( request, response );
}
}
<!-- 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.PrintWriter; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * サーブレットのテスト。 */ 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" ); // 入力値の文字コードをセットします。 request.setCharacterEncoding( "Windows-31J" ); // 入力フォームから入力された値を取得します。 String name = request.getParameter( "name" ); System.out.println( name ); // (入力フォームの「名前:」に入力された文字列) // HTML出力用のPrintWriterを取得します。 PrintWriter out = response.getWriter(); // HTMLを出力します。 out.println( "<html>" ); out.println( "<head>" ); out.println( "<title>サーブレットのテスト</title>" ); out.println( "</head>" ); out.println( "<body>" ); out.println( "入力された値:" ); out.println( name ); out.println( "</body>" ); out.println( "</html>" ); } /** * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。 */ protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { // でも面倒なのでdoGet()メソッドに丸投げします。 doGet( request, response ); } }