初めてJavaのWebアプリを作ってみたいという人に向けて、サーブレットのライフサイクルとスレッドについて解説する。
※本稿は、秀和システム発行の書籍『Javaサーバサイドプログラミング パーフェクトマスター(2015年12月21日発行)』の中から、特に@IT読者に有用だと考えられる箇所を編集部が選び、著者及び出版社の許可を得て転載したものです。
ご注意:本稿は、タイトルを除き、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
サーブレットにフィールドを定義しておくと、フィールドの値を複数のクライアントで共有できます。Javaの静的なフィールド、(クラス変数)のようにも思えますが、れっきとしたフィールド(インスタンス変数)です。Javaの教科書どおりに考えれば、クラス変数はクラスに1個だけ、インスタンス変数はインスタンスの数だけ作成されるはずですが、サーブレットのインスタンスは1個しか生成されないので、当然、サーブレットのフィールドは1つだけです。
int型のフィールドを持つサーブレットを作成
「プログラムの処理としてはごくシンプルなものです。int型のフィールドを用意して、doGet()メソッドが呼ばれるたびに値を1加算するだけです」
「通常のGETリクエストがあるとdoGet()が呼ばれるので、メソッド内部で1を加算すればいいですね」
「あと、プログラムの動作が確認しやすいように更新用のリンクを画面に表示しましょう。a要素のリンク先をサーブレット自身にしておいてください」
「リンクをクリックするたびにサーブレットがリクエストされるようにしておくのですね。じゃ、作ってみます」
「では、実行してみます」
「別のブラウザーを起動してリクエストしても、引き続きリクエスト回数が加算されていきますね」
Copyright © ITmedia, Inc. All Rights Reserved.