Java EEの一機能Servlet(サーブレット)&JSPとは?
- ツイート
-
- 2018/02/03

Webシステム開発のためのフレームワーク「Java EE(Java Platform Enterprise Edition)」が持つ強力な機能として、Servlet(サーブレット)とJSPが挙げられます。
ライフサイクル管理やマルチスレッド処理が可能なServletと、タグを用いてHTMLにJavaのコードを埋め込むことができるJSPは、どちらもJava開発の現場に欠かせない存在です。そこで今回は、ServletとJSPについてご紹介します。
IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。
目次
Java Servlet(サーブレット)とは

Java ServletはWebサーバー上で動作するJavaプログラムのことで、Webページを動的に生成したり、データ処理を行ったりします。単にServletと呼ばれることも少なくありません。
Java Applet(アプレット)もServletと同じくJavaプログラムですが、Appletはクライアントがダウンロードしてクライアント側で実行されます。
Servletは単体では動作しません。動作にはTomcatなどの「サーブレットコンテナ」と呼ばれるソフトウェアが必要です。
Java Servlet(サーブレット)でできること

Servletはライフサイクル管理やマルチスレッド処理が可能、さらにプラットフォームに依存しないという点が長所です。
ライフサイクル管理
ライフサイクルとは、Servletの開始から終了までの一連のプロセスのことです。クライアントからサーブレットに対するリクエストがあると、初期化処理が実行されます。Servletは1度ロード(読み込まれる)されるとメモリ上に保持されるため、2回目以降は初期化処理が不要となり、処理時間が短縮されます。
マルチスレッド処理
プログラムを実行する際、コンピューターはコードを先頭行から1行ずつ読み込んでいきます。このような一連の処理の流れをスレッド(thread:糸)と呼びます。
マルチスレッドは複数の処理を並行して実行できるため、複数のクライアントがServletに同時にアクセスしても待たせることなく、処理を進めることができます。
プラットフォームに依存しない
Javaは「Write Once, Run Anywhere(1度書けばどこでも動く)」というスローガンからも分かるように、Windows、Mac OS、Linuxといったプラットフォームに依存することなくプログラムを実行できる点が魅力です。ServletもJavaプログラムであり、プラットフォームの依存性を気にする必要がありません。
JSP(JavaServer Pages)とは

JSPとは「JavaServer Pages」の略称で、HTMLページ内にタグを使ってJavaコードを埋め込むことができる技術です。JSPで記述されたプログラムは、Servletプログラムに変換されてから実行されます。
「プログラムを最終的にServletに変換するのであれば、JSPは不要ではないか」と感じた方もいるでしょう。JSPを採用する理由は、MVC(Model View Controller)モデルに基づくWeb開発アプリケーション開発を行うためです。
MVCモデルは、アプリケーションのビジネスロジック(業務処理)を受け持つModel、Modelの表示を受け持つView、ModelとViewを制御するControllerの3機能に分けて開発を行う手法です。
MVCモデルに基づくWebアプリケーション開発では、Modelの機能をJava、View の機能をJSP、Controllerの機能をServletで実現します、各機能の開発はそれぞれの専門家が担当し、互いに干渉し合うことがありません。Viewの機能(ビジュアル面)の開発はWebデザイナーに、他の機能の開発はエンジニアに担当させることが可能です。
おわりに
JavaによるWebアプリケーション開発を行う場合、コンピューター上で単独で動作するJavaアプリケーションの開発スキルに加えて、Webサーバー上で動作するServletやJSPのスキルも求められます。Javaエンジニアを目指している方は、JavaのWebアプリケーション開発向け機能も学んでおきましょう。
インターネット・アカデミーは、Java開発元のオラクル社とシルバーパートナーとして提携しており、世界基準でJava講座のカリキュラムを提供しています。Webアプリケーション開発に興味をお持ちの方は、ぜひインターネット・アカデミーで学んでみませんか。