Javaサーブレットとは?動的サイトの作成に使われるメリットなどを解説
thumb_javaservlettoha_01
Javaサーブレットとは?動的サイトの作成に使われるメリットなどを解説
アンドエンジニア編集部
2024.02.09
この記事でわかること
Javaサーブレットのメリットは、ライフサイクル管理、マルチスレッド対応、プラットフォームに依存しないなどである
Javaサーブレットはバックエンドの処理を担当し、画面表示を担当するJSPと一緒に使われる
Javaサーブレットが動くにはサーブレットコンテナが必要

Javaサーブレット(Servlet) とは

img_javaservlettoha_01

Javaサーブレット(Servlet) は、JavaでWebシステムを開発するときに利用されており、動的なWebページのシステムを作成することができるJavaのプログラムです。Javaサーブレットを用いて、多くのショッピングサイトやネットバンキングなどのWebシステムが構築されています。

この記事では、Javaサーブレットについて知りたい方のために、Javaサーブレットの概要や使用するメリット、動作の流れなどについて解説していきます。Javaサーブレットがどのようなものかを理解して業務に役立ててください。

Javaサーブレットの概要

Webサイトにアクセスするたびに文章や画像が変わったり、閲覧するユーザに適した内容が表示されたりするWebページのことを、動的ページと呼びます。

動的ページを作成するには、PHPやJavaScriptを利用するなど多くの手段があります。その中でも、Javaサーブレットは、Webサーバを動的に生成したり、データの処理を行ったりできるJavaで書かれたプログラムで、Webサーバ(バックエンド)で動きます。単に「サーブレット」と呼ばれることもあります。

PHPでできること6選!作品例やアプリ、できないことも紹介!
JavaScriptの入門!その概要や文法の基礎について解説!

Javaサーブレットは画面表示を担当するJSPと一緒に使われる

Javaサーブレットは、Webブラウザの画面に関する処理よりも、画面から送られたリクエストに応じて、データを処理する方が得意です。

そのため、Javaサーブレットは画面表示を行うJSP(Java Server Pages)とともに使われます。Javaサーブレットは一般的に、リクエストを受けとってレスポンスを作成するところまでを行い、表示をJSPが行います。

Javaサーブレットを使用するメリット

img_javaservlettoha_02

ここでは、動的サイトを作成するのにJavaサーブレットを使うメリットを解説します。

ライフサイクルを管理できる

ライフサイクルとは、処理が始まって終わるまでの流れのことで、Javaサーブレットを使用することでライフサイクルを効率よく管理することができます。

ユーザがWebサイトにアクセスするとき、ログインしてから他のサイトに移動したり、戻ってきたりと、何度もHTTPリクエストを行うことも多くあります。1回の訪問は「セッション」とも呼ばれます。

Javaサーブレットは、Webサイトを訪れるユーザのセッションを管理して、データをメモリに保持することで、返答までのスピードを速めることができます。

マルチスレッドに対応している

Javaサーブレットはマルチスレッドに対応しており、複数のリクエストを並行処理することが可能です。これにより、複数のユーザーからのアクセスに対して効率的に対応することができます。

Webサーバに複数のリクエストがあった場合、シングルスレッドの場合は処理が順番待ちになって効率が悪くなってしまいますが、Javaサーブレットではマルチスレッドで高速に処理を切り替えながら動作します。これにより、効率良くリクエストに応じた処理を行うことができます。

しかし、マルチスレッド処理は複数の処理を高速で切り替えながら同時並行的に実施できる分、リソースを競合状態に陥らせることもあります。そのため、Javaサーブレットの開発においてはスレッドセーフなコードを書くよう注意を払う必要もあります。

プラットフォームに依存せず動作する

Javaというプログラミング言語は、プラットフォームに依存しないプログラミング言語であり、Javaサーブレットはその特徴を受け継いでいます。

JavaサーブレットはOSやハードウェアに依存しないため、WindowsやMacOS、Linuxなど、どのプラットフォームでも動作することができます。

また、クライアント側はブラウザで動作するように作るため、クライアント側にプログラムをダウンロードする必要がなく、どの端末からでも特に設定なしにプログラムを使用できるという利点があります。

Javaを効率的に独学で学習する方法とは?おすすめの勉強方法を紹介

画面表示を担当するJSPとは

img_javaservlettoha_03

JSP(Java Server Pages)はJavaサーブレットとセットで使われることが多く、主にWebページの画面表示を担当しています。ここでは、その概要やJavaサーブレットとの関係などについて解説します。

JSPの概要

JSPは、HTML内にJavaコードを埋め込んで動的にWebページを生成する技術です。 JavaサーブレットとJSPはペアで使われることが多く、Javaサーブレットは計算処理やデータベースアクセスを担当し、JSPはJavaサーブレットが処理したデータを受け取り、クライアントに返す役割を持っています。

JSPの書き方

JSPの構文は、HTMLの中でコンテンツ内容を動的に変化させたい部分に、「<% 〜 %>」(スクリプトレット)を追加するというものです。スクリプトレットの中に記述した内容がJavaプログラムとして処理されます。

スクリプトレットなしのHTMLファイルの拡張子を「.jsp」に変えるだけでも、JSPファイルを作成することはできます。

HTMLタグとは?HTMLタグ一覧など初心者向けに解説!

JavaサーブレットとJSP

JSPは、実行前にJavaサーブレットに変換されるため、基本的には同じものと言えます。Javaサーブレットだけでも、1つ1つHTMLタグを表示するように記述すれば、JSPを使用した時と同様の機能のWebサイトを作ることが可能です。

しかし、画面表示にはそれに特化したJSPを使用し、バックエンド開発にJavaサーブレットを使って役割を別々にすることで、デザイナーとプログラマーの作業を分担し、開発の効率を上げることができます。

これにより、デザイナーは画面のUIなどに注力し、プログラマーはJavaサーブレットによりWebサーバー側の処理に集中することができ、それぞれの能力を発揮しやすくなります。

JSPの動作

JavaサーブレットとJSPの動作の例として、Webアプリケーションのログイン画面を挙げてみます。

Webサイトは、ページごとにサーブレットとJSPファイルをペアで持っています。ユーザがWebサイトのログインページににアクセスすると、JavaサーブレットはGETリクエストを処理し、JSPファイルに転送してHTMLページを返します。

ユーザがログインIDとパスワードを入力し、ログインボタンをクリックすると、サーブレットがログインIDとパスワードのデータを含むPOSTリクエストを処理し、検証を行った結果、ログイン成功または失敗のページに画面遷移します。

Javaサーブレットを動かすサーブレットコンテナとは

img_javaservlettoha_04

Javaサーブレットを動かすためには、サーブレットコンテナと呼ばれるアプリケーションが必要です。サーブレットコンテナは、Webコンテナとも呼ばれます。ここでは、いくつかのサーブレットコンテナを紹介します。

サーブレットコンテナ(Webコンテナ)とは

ブラウザからHTTPリクエストが来ると、直接Javaサーブレットが受け取るのではありません。まずはサーブレットコンテナが受け取り、Javaサーブレットを起動して、Javaサーブレットにより処理が行われます。

サーブレットコンテナは、このようにJavaサーブレットの起動を管理するだけでなく、データベース接続管理やユーザ識別のためのセッション管理も行います。JSPの動作にも、サーブレットコンテナが必要です。

サーブレットコンテナの仕様はJava EE(Java Enterprise Edition)の一部として定められており、この規定に従って作られたJavaサーブレットは、どのコンテナでも動作するようになっています。

サーブレットコンテナの種類

サーブレットコンテナにはいくつもの種類があります。その中で代表的なものを以下にピックアップします。

■Tomcat Tomcatは、簡易的なWebサーバーの機能も含んだサーブレットコンテナです。Apache Tomcat Project 内で開発されているオープンソースソフトウェアで、世界中で非常に多くのWebシステムの開発で使われています。

Tomcatは一般的にはWebサーバーであるApacheと連携して使用され、静的処理をApacheで行い、動的処理をサーブレットコンテナのTomcatで行うという構成で利用されます。

TomcatのWebサーバーとしての機能が備わっていますが、Webサーバとしての専門性に特化しているわけではありません。そのため、Tomcatが専門であるサーブレットコンテナの役割を担い、Webサーバとしての働きは、スペシャリストであるApacheを用います。

【参考】:Apache Tomcat - Welcome!

■Glassfish Glassfishは、オープンソースでJava標準仕様のフレームワークであるJakarta EEに準拠したサーブレットコンテナです。Glassfishには、サーブレットコンテナだけでなく、リソース管理やトランザクション管理が充実しており、大規模開発に対応できる柔軟さを持っているというメリットがあります。

【参考】:Eclipse GlassFish

■Jetty Jettyは、Javaだけで開発されたJavaサーブレットコンテナです。軽量で起動が早く、クライアントからのリクエストに対して非同期で待機が行われる非同期HTTPサーバであることから、クライアントからの短時間での大量のリクエストに応じることができるという特徴をもっています。

【参考】:Eclipse Jetty | The Eclipse Foundation

Javaサーブレットを学んでWebアプリ開発に役立てよう

img_javaservlettoha_05

ここまで、JavaサーブレットとJSP、そしてサーブレットコンテナについて解説してきましたが、Javaサーブレットの動的サイト開発の概要が理解いただけたでしょうか。

JavaサーブレットとJSPを使ったWeb開発は、世界中で広く行われています。JavaサーブレットとJSPのそれぞれの役割をよく学んで、Webアプリの開発に役立ててください。

HTMLからJavaを動かせる?JavaScriptを動かす方法も解説
Java入門!概要やメリット、基本事項について徹底解説!
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT