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 );
}
}




