Javaの学習をしていると出てくるのが、「サーブレット」や「JSP」というワード。でも、似たような言葉な気がするし、なんだか理解しにくいなんてことありませんか?
そこで今回の記事では、サーブレットとJSPの違いについて、同じ点も合わせて説明していきます!
サーブレットとJSPの役割
サーブレットとJSPの似ている点
サーブレットとJSPの違い
サーブレットとJSPの立ち位置
まず、JavaのMVCモデルにおけるサーブレットとJSPの立ち位置について確認します。MVCモデルとは、Webアプリケーションを、「処理を担当するM(Model)」「画面の出力を担当するV(View)」「全体のプログラム制御を担当するC(Controller)」に分離したプログラムの仕様のことです。詳しくは、以下を参照してください。
下の図は、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の勉強をするときは、ぜひこの見方を取り入れてみてください。