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

環境
JavaSE1.8
Eclipse 4.14.0

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
サーブレットコンテナーは、サーブレットをインスタンス化した後、init メソッドを 1 回だけ呼び出します。init メソッドは、サーブレットがリクエストを受信する前に正常に完了する必要があります。
サーブレットコンテナーは、サーブレットをインスタンス化した後、init メソッドを 1 回だけ呼び出します。init メソッドは、サーブレットがリクエストを受信する前に正常に完了する必要があります。
サーブレットコンテナーは、サーブレットをインスタンス化した後、init メソッドを 1 回だけ呼び出します。init メソッドは、サーブレットがリクエストを受信する前に正常に完了する必要があります。

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
このメソッドは、サーブレットの service メソッド内のすべてのスレッドが終了するか、タイムアウト期間が経過した後にのみ呼び出されます。
このメソッドは、サーブレットの service メソッド内のすべてのスレッドが終了するか、タイムアウト期間が経過した後にのみ呼び出されます。
このメソッドは、サーブレットの service メソッド内のすべてのスレッドが終了するか、タイムアウト期間が経過した後にのみ呼び出されます。

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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());
}
}
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()); } }
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の定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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>
<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>
<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