tqwko_05
@tqwko_05

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Spring BootではJSPが不要?

解決したいこと

初めてSpring Bootを使用してローカル環境の構築を行いました。
色々なサイトを参考にして、なんとか文字を表示することができました。
ソースは以下のようになってます。

image.png

Controllerクラス

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SpringIndex {

    @RequestMapping("/")
    public String index(){
        return "こんちは!";
    }
}

疑問

このソースだけで文字を出力できるのならば、Spring Bootを使用すれば極論JSPやHTMLファイルは不要なのでは??と思ったのですがそう簡単な話ではないのでしょうか・・・?

今まで自分で環境構築した際は、JavaでdoGetメソッドを書いてブラウザからのリクエストを受けてレスポンスのJSPを表示とやっていたので、Javaだけで完結していることに驚いています。
(ネット上のコードを写経した & 理解が浅かったら申し訳ありません)

0

1Answer

極端な話、文字列を表示したいだけなら、JSPやHTMLを使う必要はないと思います。しかし、現実的には多くの場合、Webアプリは画面を必要とし、画面を作るにはHTMLが必要であり、JSP(というかView)を使ったほうが効率的だと思います。

下記はSpring MVCのアーキテクチャ図です。
Spring MVCのアーキテクチャ図

質問者さんの話を上の図に当てはめると、
①クライアントからController(SpringIndex)にリクエストを投げる
④Controllerからクライアントにレスポンス(こんちは!)を返す
という事になると思います。(②と③はない)

Controllerだけで画面を作りたい場合、こんちは!の部分にHTMLを書く必要があります。静的かつ単純なものであれば、まだ分かると思いますが、動的かつ複雑なものになると、よく分からなくなると思います。そういうものを作るために、Viewを使います。 つまり、③でView(JSPやThymeleaf等)を使ってレスポンス(HTML)を動的に生成し、④で返します。

今回はJSPの話だったので、上記の通り説明しましたが、フロントエンド・フレームワークが発達した昨今では、フロントエンドはReactやVueやAngularで、バックエンドはSpring Bootで作る、という方法も人気があるようです。
ReactとSpring Bootの例:

0Like

Comments

  1. @tqwko_05

    Questioner

    なるほど、理解できました。
    今回のような単純な文字表示であれば複雑な業務ロジックが存在しないからController上でリクエストとレスポンスが完結できるわけですね!
    ありがとうございます。

Your answer might help someone💌