連載
» 2016年08月09日 05時00分 UPDATE

初心者のためのサーブレット/JSP入門(5):図で分かるサーブレットのライフサイクルとスレッド (1/3)

初めてJavaのWebアプリを作ってみたいという人に向けて、サーブレットのライフサイクルとスレッドについて解説する。

[金城俊哉,著]

連載目次

※本稿は、秀和システム発行の書籍『Javaサーバサイドプログラミング パーフェクトマスター(2015年12月21日発行)』の中から、特に@IT読者に有用だと考えられる箇所を編集部が選び、著者及び出版社の許可を得て転載したものです。
ご注意:本稿は、タイトルを除き、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。


サーブレットがリクエストされた回数をカウントする(サーブレットのライフサイクル)

Important

 サーブレットにフィールドを定義しておくと、フィールドの値を複数のクライアントで共有できます。Javaの静的なフィールド、(クラス変数)のようにも思えますが、れっきとしたフィールド(インスタンス変数)です。Javaの教科書どおりに考えれば、クラス変数はクラスに1個だけ、インスタンス変数はインスタンスの数だけ作成されるはずですが、サーブレットのインスタンスは1個しか生成されないので、当然、サーブレットのフィールドは1つだけです。

int型のフィールドを持つサーブレットを作成

theme

サーブレットにint型のフィールドを用意し、サーブレットがリクエストされ

ると値を1ずつ増加させることで、リクエストの回数を画面に表示する。


Navigator

「プログラムの処理としてはごくシンプルなものです。int型のフィールドを用意して、doGet()メソッドが呼ばれるたびに値を1加算するだけです」


Driver

「通常のGETリクエストがあるとdoGet()が呼ばれるので、メソッド内部で1を加算すればいいですね」


Navigator

「あと、プログラムの動作が確認しやすいように更新用のリンクを画面に表示しましょう。a要素のリンク先をサーブレット自身にしておいてください」


Driver

「リンクをクリックするたびにサーブレットがリクエストされるようにしておくのですね。じゃ、作ってみます」


サーブレットのリクエスト回数をカウントする(CounterServlet01.java)
Driver

「では、実行してみます」


1回目のリクエスト(左)と2回目以降のリクエスト(右)
Driver

「別のブラウザーを起動してリクエストしても、引き続きリクエスト回数が加算されていきますね」


       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。