第2回 サーブレットアプリケーションを実行しよう
|
アプリケーションの配備 |
ここまでの手順で、サーブレットを作成し、実行する手順はお分かりいただけたと思います。最後にアプリケーションの配布に必要な知識について取り上げます。実際には、アプリケーションをテストしている段階でテスト用のTomcatにアプリケーションを配布していますが、ここでは本番環境にアプリケーションを展開する前に、再度内容を確認しましょう
アプリケーションを配布する際には、通常、Webアーカイブ(Web ARchive・WARファイル)に必要なすべてのファイルを格納して、これを配布します。このファイルの中にはコンパイル済みのサーブレットやHTMLファイル、画像イメージに加え、Webコンテナに適切な実行方法を指示するための配布ディスクリプタと呼ばれるファイル(web.xml)が含まれます。
JBuilderを利用して開発を進めている場合には、すでにこれらのファイルが出来上がっているので、まずはこれを確認してみましょう。
プロジェクトペインでWARファイルをダブルクリックします。すると、画面左下の構造ペインに、そのモジュールの内容が階層構造で表示されます(画面6)。
画面6 Web.xmlの内容を閲覧する |
ここでは、作成したサーブレットのコンパイル済みクラス、HTMLファイルのほかに2つのファイルが格納されていることが分かります。各ディレクトリの意味は表1のとおりです。
表1 WARファイルの構造ディレクトリ | 配置されるファイル |
/ | HTMLファイルや画像ファイル |
/META-INF | アーカイブファイルの内容を定義するマニフェストファイル |
/WEB-INF | 作成したWebアプリケーションの設定が記載されたweb.xmlを格納 |
/WEB-INF/classes | コンパイル済みのサーブレットクラス |
/WEB-INF/lib | このWebアプリケーションで必要となるライブラリ(オプション) |
すでに何度か説明しているとおり、web.xmlはこのWebアプリケーションを実行するために必要なXML形式の設定ファイルです。このファイルをダブルクリックして中身をチェックしてみましょう。
リスト5 Web.xmlファイル |
<?xml version="1.0" encoding="UTF-8"?> |
このファイルには、Web.xmlファイルとして最低限必要な項目が以下の項目が含まれています。
- servlet-mapping: URLからサーブレットの論理名を指定する
- servlet: サーブレットの論理名からサーブレットクラスを指定する
Webコンテナはこれらの要素を利用して、画面7のようにURLから適切なサーブレットを呼び出すことが可能になります。
図1 Web.xmlにおけるURLとサーブレットクラスのマッピング |
このほかに、Web配布ディスクリプタでは、以下のような項目を定義することが可能です。
- コンテキストパラメータ
- EJB 参照
- EJB ローカル参照
- 環境項目
- エラーページ
- フィルタ
- フィルタマッピング
- リスナー
- MIME マッピング
- リソース環境参照
- リソース参照
- セキュリティ制約
- セキュリティロール
- タグライブラリ
通常は、これらの処理はすべてweb.xmlファイルを直接編集して行いますが、JBuilderでは、Webモジュールデザイナという画面上で必要な項目を設定していくことで、これらを自動的に生成できます。
また、サーブレットなど、ウィザードを使用してひな型を作成する場合には、最低限必要な設定は自動的に行われるので、細かい設定が必要になるまでこれらを直接処理する必要はありません。
画面7 Webモジュールデザイナでサーブレットマッピングを設定する (クリックすると拡大します) |
ここまでで、JBuilderを利用してサーブレットを作成してきました。サーブレットの作成がどのようなものかについて、おおよそを把握していただけたことと思います。これをきっかけに、本格的なサーブレットプログラミングの学習を行っていただきたいと思います。次回は、引き続きJBuilderを用い、JSPを使用したアプリケーションの構築を説明します。
2/2 |
INDEX |
||
第2回 サーブレットアプリケーションを実行しよう | ||
Page1 サーブレットの作成 |
||
Page2 アプリケーションの配備 |
「ツールでトライ!初めてのWebアプリケーション」記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|