【Java & Tomcat】サーブレットクラスの作成(サンプルプログラム付)

  • このエントリーをはてなブックマークに追加
  • Pocket

サーブレットとはJavaでWebアプリケーションを作るときの仕様(仕組み)だ。そのサーブレットを実際に作成してみよう。

サーブレットの処理の流れ

サーブレットを作成するために、まずその処理の流れを理解しておこう。最初に、クライアントからのリクエストがWebコンテナに届く。リクエストを受け取るとWebコンテナはリクエストの処理を行うためのサーブレットを選択しなければならない。その選択は、Webコンテナがリクエストの中に含まれるURLパスをサーブレットにマッピングする(紐付けする)ことにより行われる。

  

URLパスはコンテキストルートとURLパターン(url-pattern)を含んでいる。

これがURLパスの形式である。

http://host:port/context-root[/url-pattern]

Webコンテナは、このふたつの情報からサーブレットを選択する。Webコンテナにより選択されたサーブレットはレスポンスをクライアントに返す。

URLパターンの宣言

サーブレットのソースファイルの中で、@WebServletアノテーションを使うことによってサーブレットのためのURLパターンを宣言する。

書き方の基本は簡単だ。

@WebServlet("/url-pattern")

例えば、次のようなURLにサーブレットを割り当てることを考えてみよう。

http://localhost:8080/Servlet/HelloWorld

このような時は、@WebServletアノテーションを使って次のようにURLにサーブレットを割り当てることができる。(この場合、context-rootはServletとする。)@WebServletにURLパターン:/HelloWorldを宣言する。これによってURLパターンとサーブレットがマッピングされる。

この関係をまとめてみると次の図のようになる。Webコンテナがリクエストの中のURLパスに含まれるコンテキストルートServletとアノテーション/HelloWorldからサーブレットを選択する。

これで、サーブレットが選ばれることになるのだが、サーブレットの処理の流れはまだ続く。次は、サーブレットにクライアントからのリクエストが渡された後の処理である。いよいよサーブレットの中に入って行く。

サーブレットクラス

クライアントからのリクエストはWebコンテナによってマッピングされたサーブレットに渡され、そのサーブレットがリクエストの中にあるメソッドに対応した処理を行う。メソッドには、次の図が示すようにメソッドGET、POSTなどいくつかの種類がある。

サーブレットクラスはHttpServletクラスを継承して作成される。このサーブレットクラスで、リクエストのメソッドGETに対応したdoGet()、POSTに対応したdoPost()などの親クラスHttpServletのメソッドをオーバーライドして要求にあった処理を記述する。

この例では、サービスメソッドのdoGet()をオーバーライドしている。このdoGet()メソッドの中に、レスポンスとしてクライアントに返すデータの処理や表示する画面をHTMLで記述することになる。

では、実際のサーブレットの作成をサンプルプログラムで見てみよう。

シンプルなサンプルプログラム

このサンプルプログラムでは、先に説明したようにリクエストのGETメソッドの処理をdoGet()メソッドで実装している。サーブレットは、シンプルなHTMLで書かれた画面を出力する。

実行結果

ブラウザにURL:http://localhost:8080/Servlet/HelloWorldを入力し、Enterを押す。

表示されるブラウザ画面:

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] アノテーションの宣言をする。
  • [2] HttpServletを継承して、HelloWorldクラスを定義する。
  • [3] doGet()メソッドをオーバーライドして定義する。
  • [4] Content Typeを設定する。
  • [5] HTMLを出力するためのoutオブジェクトを取得する。
  • [6]-[9] outオブジェクトに「Sample」と「Hello World!」を表示するHTMLコードを出力する。

まとめ

このページではサーブレットの作成方法について簡単に紹介した。サンプルプログラムなどを実際に動作させて各所の働きを確認していこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる