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 [テックアカデミー] 

 

-java
-

Copyright© エンジニアてんし君ブログ , 2020 All Rights Reserved.