「Java8」Servlet のinitメソッド、destoryメソッドの使い方

環境
JavaSE1.8
Eclipse 4.14.0

構文
1.init(ServletConfig config)
サーブレットがサービスに配置されていることをサーブレットに示すために、サーブレットコンテナーによって呼び出されます。

サーブレットコンテナーは、サーブレットをインスタンス化した後、init メソッドを 1 回だけ呼び出します。init メソッドは、サーブレットがリクエストを受信する前に正常に完了する必要があります。

2.destroy()
サーブレットコンテナーによって呼び出され、サーブレットがサービスを停止していることをサーブレットに示します。

このメソッドは、サーブレットの service メソッド内のすべてのスレッドが終了するか、タイムアウト期間が経過した後にのみ呼び出されます。

使用例
1.Servlet側プログラム

package com.arkgame.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CftServlet extends HttpServlet {

    @Override
    public void init() throws ServletException { //init メソッドで初期化
        System.out.println("init()メソッド: hash=" + this.hashCode());
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("doGet()メソッド: hash=" + this.hashCode());
    }

    @Override
    public void destroy() { //destroy メソッドで破棄
        System.out.println("destroy()メソッド: hash=" + this.hashCode());
    }
}

説明
1.Servlet は、最初に URL にアクセスされたタイミングでインスタンスが生成されます。
init()メソッドを呼ばれます
2.一定時間 Servlet にアクセスが無かったり、サーバーが停止するときに Servlet のインスタンスは破棄されます。
destroy() メソッドを呼ばれます。

2.web.xmlの定義

<servlet>
  <servlet-name>CftServlet</servlet-name>
  <servlet-class>com.arkgame.servlet.CftServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>CftServlet</servlet-name>
  <url-pattern>/cft</url-pattern>
</servlet-mapping>

 

Java

Posted by arkgame