• ベストアンサー

ServletとJSP

サーバサイドの本を読んでて思ったのですが、どういうときにServletとJSPを使い分けるのですか?ServletでできることはJSPでもできると本に書いていましたが、でもどっちも大切なのですよね? 使い分け方について教えていただければ幸いです!

質問者が選んだベストアンサー

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.4

JSPかServletのどちらかしか使わないのでなく、 両方使います。(もちろん、片方だけでもいいですが) 使い分けは自由でいいんですが、 一般的には、画面の表示の部分をJSPを使い、 画面遷移などの管理をServletで行い、 実際の処理はBeanやEJBで行います。 例をあげると、1つのサーブレットで、複数のBeanやEJBを駆使して 処理を行い、行った処理を複数のJSPで各画面を表示するといった感じです。 Servletは画面レイアウトに関することは行わずに、 どのJSPを使うか、どのBeanを使って処理を行うかという管理を行うだけです。 JSPのみとか、JSP+Servletとか、JSP+Servlet+Beanとか その規模に応じて色々な組み合わせが考えられます。

aika25
質問者

お礼

例がとてもわかりやすかったです! ありがとうございました!

その他の回答 (3)

回答No.3

他の方々と同じ考えですが、 JSP = HTML+JAVAなので、 ぶっちゃけた話HTMLファイルの拡張子を.jspに変えるだけでJSPファイルとして動きます。 なぜJSPが便利かというと、 ServletでHTMLを表示させたことがあればわかるのですが、 out.println("<html>"); みたいな感じで書かなければならず非常にめんどくさいのです。 これがさらに変数などが混ざってくると out.println("<input type=\"text\" value=\""+ str +"\""); のようになり非常にわかりにくくなります。 また、JSPだと、HTMLファイルを使いまわせるので、 HTMLの部分を専用ソフトで作れば、非常に効率よく作ることができます。 ServletとJSPを使い分けるメリットはこれだけではないですが、 こういう例を出すとわかりやすいのではないかと思い書いてみました。

aika25
質問者

補足

回答ありがとうございます。 違いはよくわかりましたが、実際になにか作るときに、 ここはJSPを使おう、ここはサーブレットだ、という 判断はどうやってするのですか?

  • onchange
  • ベストアンサー率20% (5/24)
回答No.2

MVCモデルと深いつながりがあるみたいですね。 M(Model) JavaBeans、EJB V(View) JSP C(Controller) Servlet @ITの専門家の方によれば、 「Controller(画面遷移やロジックの制御)の部分と、 View(画面表示やUI)の部分」を「分離して開発することができる」ため、「独立性の保持」や「メンテナンス性の向上」につながるなどの解説がされています。

参考URL:
http://www.atmarkit.co.jp/fjava/javafaq/jsp/jsp03.html
aika25
質問者

お礼

MVCモデル、勉強にになりました! ありがとうございます!

  • bugmaru
  • ベストアンサー率38% (76/195)
回答No.1

ソフトウェア設計上の観点からServletとJSPを使い分けます。 JSPは主にWEB画面の表示、制御の用途、Servletはビジネスロジックと分離 することで、開発生産性、保守性、再利用性が高くなります。

aika25
質問者

お礼

ソフトウェア設計上の観点から使い分けるというのは、 まだ私には難しいです・・。 でもとても勉強になりました。 ありがとうございます!