まとまりのないブログ

something which something is something

jsp 雑記・雑学

JAVAサーブレットクラスの初期化

投稿日:

JAVAサーブレットのクラスを初期化するときの方法について何種類かあるので迷ったので覚書き。
かんたんなサーブレットクラスを作ってテストしてみた。

public class InitTest extends HttpServlet{
	
	static{
		System.out.println("static medhod called");
	}
	
	public void init() throws ServletException{
		System.out.println("init medhod called");
	}
	
	public InitTest(){
		System.out.println("class constructor called");
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("http doGet called");
	}
	
}

1番めはstaticメソッド。initilizerとも呼ばれる。staticなinitilizerで呼ばれるタイミングは一番早い。
2番めはinitメソッドでインスタンス作成後に一度だけ呼び出されるらしい。
3番めはコンストラクタでインスタンス作成したときに呼び出される。

で、上記クラスをTomcatで実行してhttpでアクセスしてみたら

static medhod called
class constructor called
init medhod called
http doGet called

という順番で呼び出された。staticメソッドとクラスのコンストラクタのどちらを使おうかと迷っていたらクラスのinit()メソッドというのも存在していて余計にややこしくなった。init()メソッドは今まで使ってこなくても何の問題もなかったのでJAVAサーブレットで開発をしている上では無視しておいてもいいんじゃないだろうか(適当)
JAVAサーブレット自体がクラスのインスタンスを1つしか作成しないようになっていていくつもインスタンスを作るようなものだったらstaticメソッドを使うかコンストラクタを使うかとか迷わないんだが。

-jsp, 雑記・雑学

執筆者:


comment

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

海外通販で注文したラズベリーパイゼロが届いた

pimoroniというラズベリーパイを中心に売っている海外の通信販売サイトで注文したラズパイゼロが届いた。注文から到着まで約1周間強といったところ。普通の通販と違って海外からなので最悪届かないんじゃな …

no image

Cannot create resource instance

環境。 java:J2SE v 1.4.2_18 tomcat:4.1.37 上記の環境をwindowsとlinuxマシンで構築した。windowsで開発して、出来上がったものをlinuxサーバで運用 …

no image

Tomcatの開発環境について

今使っているTomcatの開発環境が古くなってきたので(Eclipse3.5.1,JDK1.6,Tomcat5.5)最新のEclipseとTomcatのバージョンにあげてみようかとトライしてみた。今現 …

no image

JavaServerPage においてCSSのmedia=print が働かない現象について

JSPにて表示するウェブページのスタイルシートを別途プリント用のスタイルシートを用意して適用させてみようとテストしたところ,表示されないという現象があった。下記のような感じで記述をしてみたのだが,どう …

no image

四国銀行がオンラインバンキングでハードウェアトークンを始めた様子

ワンタイムパスワード(ハードウェアトークン)の取扱い開始 | 四国銀行 四国銀行が振り込みと振替をオンラインバンキングでする場合にはワンタイムパスワードを必須にする様子。ハードウェアで短時間だけ有効な …