こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

コントローラの役割はJSPにはやらせないですよね?

コントローラの役割を、HttpServletだけでなくjspにやらせる構成も
正しい思想の1つなのでしょうか??

「コントローラ」は、
基本「依頼と、依頼結果をもとにした次の依頼」をする。
という風に役割を捉えていました。

例えば
Aに処理依頼をしたあと、
処理が成功したから今度はBに処理依頼をして、
その結果データが
1件以上だったらCに依頼をして、
0件だったら次はDに処理を依頼する。
のような。

そして、それはHttpServletのところにやらせるものなのかと捉えています。
(※間違っているのかもですが。。)

しかし、

書こうと思えば、サーブレットを撤廃して、
画面遷移は、x.jsp ⇒ y.jsp ⇒ z.jsp
と、サーブレットを介さずにチェーンを作ることも可能だと思います。

(1)そういう仕組もわりと一般的なのでしょうか?

(2)jspになんでもやらせすぎると、それぞれのソースが、
◆A:プレゼンテーション層としての処理なのか?(イテレータでの描画とか)
◆B:ファンクション層の処理なのか?(例えば入力チェック処理など)
◆C:コントローラ層の処理なのか?
(各結果を元に、次にどこの処理にどういうデリゲートするのか等処理)

がパッと分かりにくく、カオスになりやすいと思っています。
そんな風になるくらいだったら、
コントローラはサーブレットにさせた方が良いと思うのですが、あえて全てJSPにさせるメリットもあったりするのでしょうか?

◆確認
画面遷移は、コントローラの役割だと思っていたのですが、
もしかしたらそこが間違っているのでしょうか?
(WEB系の開発かどうかでも違うのかもですが。)
.

投稿日時 - 2018-08-09 01:33:41

QNo.9525901

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ちなみにJSPは下記のようにServletに変換されるらしいです(断定はできませんが、毎回と言う事ではなく、(作成・変更されてから)最初の1回だけだろうと思われますが)。
JSPの本質はServletと言うことになります。

ざっくりJava JSP/サーブレット
https://qiita.com/kazukichi/items/4325b64450f93f04e316

>JSPはJavaサーバーがJSPのコードを読み込み、それをサーブレットのソースコードに変換。
>HTMLのタグなど、すべてprintlnで書きだすように変換される。
>そして、生成されたサーブレットのソースコードをコンパイルし、サーブレットを生成してそれを呼び出す。



下記の「実は、JSPとサーブレットは技術的には同じもの」とは、そう言う意味だったようです。

初めてのWebアプリケーション・サーバ
http://www.atmarkit.co.jp/fjava/rensai/was05/was05_1.html

>実は、JSPとサーブレットは技術的には同じもので、違いはその記述方法にあります。


つまり、JSPは わざわざデザイナーのために作られた言語仕様と言うことでしょう。

投稿日時 - 2018-08-17 09:17:41

ANo.1

複数の人数で開発する場合に場合に、「Model、View、Controller」に分けます。
Model(Enterprise JavaBeans)はデータベースが得意な人が担当します。
View(JavaServer Page)はデザイナーが担当します。
Controller(Servlet)はデータベースが不得意な人が担当します。
個人でプログラミングする場合は、そこまで厳密に分ける必要は有りません(もちろん分けても良いでしょうが、「JavaServer Page」だけでプログラムしても良いでしょうし、「Servlet」だけでプログラムしても良いでしょう)。

JavaによるWebアプリケーション入門
http://www.wakhok.ac.jp/~tomoharu/web2004/text/index_c10.html

ざっくりJava JSP/サーブレット
https://qiita.com/kazukichi/items/4325b64450f93f04e316

初めてのWebアプリケーション・サーバ
http://www.atmarkit.co.jp/fjava/rensai/was05/was05_1.html

>サーブレットは最初のHTTPリクエストによって初期化され、それ以降はメモリ上に常駐し、マルチスレッドでサービス処理のみを実行するようになります。そして、HTTPリクエストが来なくなると消滅処理が実行され、メモリ上から消滅します。

>実は、JSPとサーブレットは技術的には同じもので、違いはその記述方法にあります。

ServletとJSP、Beanのうまい連携方法を教えてください
http://www.atmarkit.co.jp/fjava/javafaq/jsp/jsp05.html

投稿日時 - 2018-08-14 23:20:51

あなたにオススメの質問