Webシステム

【初心者向け】サーブレットとJSPの違いをわかりやすく解説!

サーブレットとJSPの違いについてのサムネイル

Javaの学習をしていると出てくるのが、「サーブレット」や「JSP」というワード。でも、似たような言葉な気がするし、なんだか理解しにくいなんてことありませんか?

そこで今回の記事では、サーブレットとJSPの違いについて、同じ点も合わせて説明していきます!

サーブレットとJSPの立ち位置

まず、JavaのMVCモデルにおけるサーブレットとJSPの立ち位置について確認します。MVCモデルとは、Webアプリケーションを、「処理を担当するM(Model)」「画面の出力を担当するV(View)」「全体のプログラム制御を担当するC(Controller)」に分離したプログラムの仕様のことです。詳しくは、以下を参照してください。

JavaのMVCモデルの意味や構成説明
【初心者向け】JavaのMVCモデルとは?意味やその構成を解説! Javaを使ったWebアプリケーションの学習をして出てくる概念が、「MVCモデル」です。 これは、「Javaプログラムを、役割ご...

下の図は、WebアプリケーションにおけるMVCモデルの概念図です。

この図を用いて、Webアプリケーションにおける、サーブレットとJSPの立ち位置を説明します。

サーブレットは、Webサーバ内のプレゼンテーション層における、C(Controller)の役割をしています。ブラウザからリクエストを受け、その内容をもとに処理をM(Model)やV(View)に割り振るファイルです。

一方、JSPは、Webアプリケーションのプレゼンテーション層における、V(View)の役割をしています。処理結果をサーブレットから受け取り、ブラウザの出力内容を記載したファイルです。

それでは、2つの関係について、違いは何なのか、似たところはないのか見ていきます。

サーブレットとJSPの比較

似ている点

サーブレットとJSPの似ている点について、以下にまとめました。

● その名前の機能をしたファイルである。
サーブレットもJSPも機能自体、あるいはその機能を持つファイルのことを指します。

● 同じWebコンテナ内で作動する。
サーブレットもJSPもWebサーバ内のWebコンテナでコンパイルされ実行されます。Webコンテナは、サーブレットやJSPの実行環境のことです。

違う点

サーブレットとJSPの違う点について、以下にまとめました。

● ファイルの拡張子が異なる。
サーブレットは~.javaの拡張子なのに対し、JSPは~.jspの拡張子です。

● Webサーバ内における役割が異なる。
サーブレットは、MVCモデルにおけるC(Controller)です。ブラウザからのリクエストに対して、処理を業務ロジックから呼び出したり、処理結果をJSPに渡したりします。
一方JSPは、MVCモデルにおけるV(View)です。渡された処理結果の表示画面をブラウザへ渡します。

● プログラムの書き方が異なる。
サーブレットはJavaにより記述されます。一方JSPは、主にHTMLを用いて記述されます。

そのほかにもたくさん違いはありますが、大きくはこの3つがサーブレットとJSPに違いと思っていてください。

まとめ

サーブレットとJSPのように、言語を勉強していると似ていて理解が難しいワードがたくさんでてきます。その際は、ぜひ大局的な観点で比較してみてください。

サーブレットとJSPも、細かい違いはあれど、それぞれの機能を持ったWebサーバ内のファイルのことでした。

ITの勉強をするときは、ぜひこの見方を取り入れてみてください。