java

Javaのサーブレット/JSPとは?初心者にもわかりやすいように解説!

2019年8月9日

海で泳ぐ亀
あなた
サーブレットってなに?

今回はサーブレットとは何かをわかりやすく解説していきます。

こんな方におすすめ

  • サーブレットが何か知りたい方
  • サーブレットが使えるようになりたい方

サーブレットはWeb上で動くJavaプログラム

 

簡潔にいうとサーブレットはWeb上で動くJavaプログラムです。

画面で必要なデータの処理をしてくれます。

データの受け取りと差し出しを行う役割です。

イメージでいうと郵便局みたいな感じです。

届いた手紙(データ)を処理して配達(出力)する感じですね。

 

JSPとは画面専門のデータ処理

実はJSPも先ほど説明したサーブレットと役割は大きく変わりません。

同様にデータの受け取りと差し出しを行うプログラムです。

ここでは大きく「サーブレットもJSPも一緒」という認識でいいでしょう。

なぜサーブレットとJSPの2つが必要なのか

あなた
データの処理をするのなら1つでよくない?なんでサーブレットとJSPなんて2つ用意したの?

と思う方も多いでしょう。

結論から言うと同じ処理でもさらに細かくして役割分担をさせるためです。

具体的には

ポイント

サーブレット→画面で必要なデータの処理

JSP→HTML周りの画面部分の処理

と言う感じです。

 

実際に専門の方に聞いたところ非常にうまくまとめてくださりました。

以下にまとめます。

(Java教師より)

実はjspがない形でのサーブレットの記述も可能です。

以下のようなサーブレットですね。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   response.setContentType("text/html; charset=UTF-8");
   PrintWriter out = response.getWriter();
   out.println("<html>");
   out.println("<head>");
   out.println("<title>タイトル</title>");
   out.println("</head>");
   out.println("<body>");
   out.println("おはようございます");
   out.println("</body>");
   out.println("</html>");
}

 

さて、ここでなぜこの書き方ではなく、jspと言う別の形にしたのか考えてみましょう。

このサーブレットでは要はHTMLを作りたいわけです。


でもHTMLは見た目のところなので非常に頻繁に変更が行われます。
そうするとその都度
javaのソースコードの修正→コンパイル→warファイル(サーバに乗せるためのファイル形式)構成の再作成→デプロイ(サーバーへ実際に設置する)

ということが発生し、大変です。


また、たとえば、ページが30ページあるWEBアプリだとして、共通部分(例えばフッターの連絡先など)が変わった場合、すべてのサーブレットでその部分を変更するためだけにソースコードの修正が発生し、非常に煩雑です。

そこで、HTML周りの画面部分をjsp、その画面で必要なデータの処理をサーブレット、と役割分担を行ったわけです。

また、こうすることで各専門分野での分業が容易になります。

 

てんし君
JSPを作ることで修正の手間を省けるってことだね

 

いままで、サーブレットにHTMLを記述していたときは、javaのエンジニアが直接ソースコードを触ることになっていたのですが、
javaのエンジニアはWEBデザイナーではないのでその専門的な知識は、WEBデザイナーには劣ります。
(スーパーエンジニアでWEBデザインに造詣の深いjavaエンジニアもいるにはいますが、多くはいませんよね)
jspにHTMLを外出しにすることによって、WEBデザイナーも関われる様にもできる、ということです。

役割分担を適切に行うことで、それに応じた分業も容易に可能、ということにもなります。

このようにjspとサーブレットを分けることでのメリットはすごく多いです。

それぞれが役割分担することでそれぞれのモジュールが適切なサイズに成りわかりやすく、メンテナンスしやすい作りになります。


ちなみにこの考え方をMVCモデルといいます。

 

サーブレットとJSPを使いこなせるようになることは大事

個人的にJavaのメインと言ってもいいと思うのがJSPとサーブレットを使いこなすことだと思っています。

それぞれが存在する理由をしっかり理解しておきながらプログラムを組むことでより、綺麗で能動的なコードがかけるようになります。

(僕はなんとなくでサーブレットとJSPを扱っていたので上記のことを理解した時は感動したし、早く理解しておくべきだったと思いました。)

サーブレットとJSPについて疑問を持った方はここで理解しておきましょう。

 

Javaを真剣に学ぶならTechAcademyがおすすめ

 

TechAcademyでは講師の方の丁寧なサポートを受けながら就職できるレベルのJavaの技術を身に付けることができます。

TechAcademyでJavaを学ぶ

サポートの例としては

・毎日15時〜23時対応のチャットサポート(本当に質が高い)

・週に2回のビデオチャットでの担当の先生との面談(モチベ維持になる)

などがあります。

無料でお試しもできるのでスクールでプログラミングを学んでみたいけど迷っている方はまず無料体験から試してみてもいいと思います。

人気無料体験はこちらから

僕が実際に無料体験を受けた時の感想や内容をまとめた記事はこちら

僕がテックアカデミーの無料体験を受けた時の話【内容を詳しく公開】と書かれた画像
僕がテックアカデミーの無料体験を受けた時の話【内容を詳しく公開】

  あなたテックアカデミーの無料体験ってどんな感じなんですか?   テックアカデミーの受講を考えている方の中には、まずテックアカデミーの無料体験を試したいと思う方もいると思います。 そして、そのような ...

続きを見る

 

TechAcademy [テックアカデミー] 

 

プログラミングスクールに関する情報

【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】と書かれた画像
【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】

  あなたプログラミングスクールに通いたいけどたくさんありすぎてどこがいいのかわかりません。   最近はエンジニアブームということもありプログラミングスクールが増えました。 一方でたくさんありすぎてど ...

続きを見る

返金保証ありのプログラミングスクールランキング【エンジニアが選びました】と表示されたパソコンの画面
【転職保証つき】返金保証ありのプログラミングスクールランキング【エンジニアが選びました】

  あなた返金保証がついているオススメのプログラミングスクールってありますか?   結論から話すと、返金保証つきのプログラミングスクールランキングは次の通りです。   1位:DMMWEBキャンプ  【 ...

続きを見る

wordpress
【無料あり】WEB制作を学べるオンラインスクールランキング【副業で稼ぎたい方向け】

  あなたWeb制作の副業で稼ぎたいけど、どのスクールで学ぶのが良いの? スクール選びで失敗はしたくないです。   ↑このような疑問や不安を解決するべく、現役のWebエンジニアがWEB制作を学べるスク ...

続きを見る

フリーランス
無料あり:フリーランスを目指せるプログラミングスクールランキング【体験をもとに徹底分析しました】

  あなたフリーランスエンジニアを目指すことができるプログラミングスクールってありますか?   最近では、高年収や働きやすさの魅力からフリーランスエンジニアを目指す方も増えてきました。 結論から話すと ...

続きを見る

WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】と書かれた画像
WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】

  あなたWEB系の自社開発企業に就職したいです。 オススメのスクールを教えて下さい。   結論から話すと、WEB系自社開発に行きやすいスクールのランキングは以下の通り。   第1位:テックアカデミー ...

続きを見る

-java
-

S