7.doPut,do...

各種HTTPリクエストをサポートするサーブレットのメソッドには、前章のservice , doGet , doPost の他に、
doPut , doHeaddoDeletedoOptionsdoTrace があります。また、init , destroy , getServletInfo メソッドも必要に応じて使用します。

(1) doPut メソッドの構文


 doPut は PUTリクエストを処理します。PUTオペレーションによって、クライアントがサーバ上にファイルを配置させることが可能となります。それは FTP経由ファイルを転送することとよく似ています。
 doPut メソッドの構文は次のとおりです。

protected void doPut(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, java.io.IOException

HttpServletRequest req : クライアントがServletへ要求したリクエスト内容等 HttpServletResponse resp : Servletがクライアントに返すレスポンス内容等 ServletException : PUTに相当するリクエストが処理できない場合 IOException : ServletがPUTリクエストの処理中に入出力エラーが発生


(2) doHead メソッドの構文


 doHead は HEADリクエストを処理します。クライアントは、Content-Type や Content-Length といったレスポンスのヘッダを参照したいときに、HEADリクエストを送信します。HTTP HEADメソッドは、Content-Lengthヘッダを正確にセットするため、レスポンスの出力バイト数をカウントします。
 doHead メソッドの構文は次のとおりです。

protected void doHead(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, java.io.IOException

HttpServletRequest req : クライアントがServletへ要求したリクエスト内容等 HttpServletResponse resp : Servletがクライアントに返すヘッダ情報 ServletException : HEADに相当するリクエストが処理できない場合 IOException : ServletがHEADリクエストの処理中に入出力エラーが発生


(3) doDelete メソッドの構文


 doDelete は DELETEリクエストを処理します。DELETEオペレーションによって、クライアントがサーバ上のドキュメントもしくWebページを削除させることが可能となります。
 doDelete メソッドの構文は次のとおりです。

protected void doDELETE(HttpServletRequest req,
                         HttpServletResponse resp)
              throws ServletException, java.io.IOException

HttpServletRequest req : クライアントがServletへ要求したリクエスト内容 HttpServletResponse resp : Servletがクライアントに返すレスポンス内容等 ServletException : DELETEに相当するリクエストが処理できない場合 IOException : ServletがDELETEリクエストの処理中に入出力エラーが発生


(4) doOptions メソッドの構文


 doOptions は OPTIONSリクエストを処理します。OPTIONSリクエストは、サーバのサポートするHTTPメソッドを決定し、適当なヘッダ情報を返します。例えば、ServletにdoGetがオーバーライドされた場合、このメソッドは次のようなヘッダ情報を返します。

     Allow: GET, HEAD, TRACE, OPTIONS

 doOptions メソッドの構文は次のとおりです。

protected void doOptions(HttpServletRequest req,
                          HttpServletResponse resp)
              throws ServletException, java.io.IOException

HttpServletRequest req : クライアントがServletへ要求したリクエスト内容等 HttpServletResponse resp : Servletがクライアントに返すレスポンス内容等 ServletException : OPTIONSに相当するリクエストが処理できない場合 IOException : ServletがOPTIONSリクエストの処理中に入出力エラーが発生


※Servletが新たなHTTPメソッドを実装しない限り、このメソッドをオーバーライドする必要はありません。

(5) doTrace メソッドの構文


 doTrace は PUTリクエストを処理します。TRACEは、TRACEリクエストとして送られたヘッダ情報をクライアントへ返すことによって、それらをデバッグ目的で使用することが可能となります。
 doTrace メソッドの構文は次のとおりです。

protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, java.io.IOException

HttpServletRequest req : クライアントがServletへ要求したリクエスト内容等 HttpServletResponse resp : Servletがクライアントに返すレスポンス内容等 ServletException : TRACEに相当するリクエストが処理できない場合 IOException : ServletがTRACEリクエストの処理中に入出力エラーが発生


(6) init メソッドの構文


 init は Servletコンテナが呼び出すライフサイクルメソッドです。このServletがサービスを開始できる状態になったことを示します。この実行により、log(String) で event_log に情報を出力できます。

public void init(ServletConfig config)  throws ServletException

config    : このServlet設定情報を含んでいる ServletConfig オブジェクト

ServletException : Servletの正常な処理が妨げられた場合に発生する例外

public void init() throws ServletException このメソッドをオーバライドすれば super.init(config) の実行不要


 init メソッドの使用例(パラメータを取得)

WEB-INF配下の web.xml にパラメータのキー名と値を定義
 :
<web-app>
  <servlet>
    <servlet-name> snoop </servlet-name>
    <servlet-class> SnoopServlet </servlet-class>
    <init-param>
      <param-name>key</param-name>
      <param-value>value</param-value>
    </init-param>
  </servlet>
 :
</web-app>
// 初期パラメータの取得1

public void init(ServletConfig config){
  super.init();				// ← これは必須
  String value = config.getInitParameter("key");
}


// 初期パラメータの取得2 public void init(){ ServletConfig config = getServletConfig(); String value = config.getInitParameter("key"); //String value = getInitParameter("key"); // これも可 }




(7) destroy メソッドの構文


 destroy は Servletコンテナが呼び出すライフサイクルメソッドです。このServlet がサービス提供を停止するときに呼び出されます。

 このメソッドは Servlet の service メソッドを実行しているスレッドが全て終了するか、あるいは、タイムアウト時間が過ぎると一度実行されます。

 このメソッドは Servlet に使用したままの状態になっているリソース(例えば、メモリ、ファイルハンドラ、スレッド)を開放する機会を与えています。

public void destroy()




(8) getServletInfo メソッドの構文


 getServletInfo は 作者、バージョン、著作権といったServletに関する情報を返します。

public string getServletInfo()

戻り値: string  Servlet の情報を含む String


以上が基本的なHttpServlet の各種メソッドです。詳細は左フレームトップの「G.servlet index」のGenericServlet , HttpServlet を参照してください。


次の章(6.doPostとForm処理)  次の章(8.サンプルコーナ)