[Spring] 1. Spring Webを開発する3つの方法
Springを用いたWeb開発では,主に静的コンテンツ,MVC,テンプレートエンジン,APIの3方式がある.
これは、サーバ上で何もせずにhtmlファイルを直接渡す方法です.
を使用してWebブラウザに接続する場合は、まずSpring Bootに内蔵されたTomcketサーバに送信します. トンプトサーバは、まずスプリングコンテナでhello-static関連コントローラを検索します. がない場合は、リソース内のhtmlを検索します. ブラウザでhtmlを画面に送信します.
Model View Controller モデル:アプリケーション層の情報とデータを表す. ビュー:画面出力ロジックを担当します. コントローラ:モデルとビューを接続する制御ロジックを担当します. 過去コントローラとビューは別々ではなく、ビューのみ→モデル1方式
-viewは画面を描くことに集中しなければならない.
-controllerビジネスに関連する内部トランザクションの処理に集中します.
従って、controllerとviewは分離され、mvc方式で使用される.
クライアントがlocalhost:8080/hello-staticに接続されている場合、スプリングは内蔵のトムケンサーバを介してcontrollerメソッドを呼び出す.
Controllerはhello-template、model(name:spring)をspringに送信します.
HelloController.java 入力パラメータを使用して「name」キーの値を受け入れ、name=?値を使用してhello-templateを返します.
viewResolverはviewを検索したり、template engine(thymeleaf)を検索したりすることができます.
viewResolverはtemplatesでhello-templateを検索し、Thymeleafテンプレートエンジンに送信します.
hello-template.html ${name}で取得
hello-mvc接続時にパラメータが入力されていない場合は、実行されません. requiredのデフォルト値はtrueです.選択的に渡す場合は、required=falseに設定します. Thymeleafテンプレートの利点は、サーバを必要とせずにhtmlファイルを開くことです. サーバなしでhtmlをロードすると、hello!空の出力で、サーバが回転している間にテキストが出力されます. テンプレートは、レンダリング変換されたhtmlを送信する. ソースビューを使用すると、変換後のhtmlが表示されます.
HTTPのBODYに文字内容を直接返すコメント @ReponseBodyを使用してViewResolverを使用しません. ViewResolverの代わりにHttpMessageConverterによって操作されます. コードソースが見えるとhtmlタグが見えず、データしか見えません. デフォルト文字処理:StringHttpMessageConverter デフォルトオブジェクト処理:MappingJackson 2 HttpMessageConverter Springでは、オブジェクトをjsonに変換するライブラリとしてJacksonがデフォルトで使用されます. @ResponseBodyを使用して、オブジェクトを返すと、オブジェクトはJSONに変換されます.
1.静的コンテンツ
これは、サーバ上で何もせずにhtmlファイルを直接渡す方法です.
2.MVCとテンプレートエンジン
1)MVCとは?
-viewは画面を描くことに集中しなければならない.
-controllerビジネスに関連する内部トランザクションの処理に集中します.
従って、controllerとviewは分離され、mvc方式で使用される.
2)MVCでhello springを出力する
クライアントがlocalhost:8080/hello-staticに接続されている場合、スプリングは内蔵のトムケンサーバを介してcontrollerメソッドを呼び出す.
Controllerはhello-template、model(name:spring)をspringに送信します.
@Controller
public class HelloController{
//hello-mvc라는 url에 매칭이 되도록 한다.
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
viewResolverはviewを検索したり、template engine(thymeleaf)を検索したりすることができます.
viewResolverはtemplatesでhello-templateを検索し、Thymeleafテンプレートエンジンに送信します.
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
HelloControllerのhelloMvc()の名前属性をhello-mvc接続時にパラメータが入力されていない場合は、実行されません.
3. API
1)@ReponseBody使用原理
2)@ResponseBody文字を返す
@Controller
public class HelloController{
@GetMapping("hello-string")
@ResponseBdoy
public String helloString(@RequestParam("name") String name){
return "hello " + name;
}
}
3)@ReponseBodyオブジェクトを返す
@Controller
public class HelloController{
@GetMapping("hello-api")
@ReponseBody //Json으로 반환한다.
public Hello helloApi(@RequestParam("name") String name){
Hello hello = new Hello();
hello.setName(name);
return hello;
}
//객체 생성
static class Hello{
private String name;
public String getName(){
return name;
}
public void setName(String name){
his.name = name;
次の文章は基礎課程の金英漢講師の春の講座です:)Reference
この問題について([Spring] 1. Spring Webを開発する3つの方法), 我々は、より多くの情報をここで見つけました https://velog.io/@kdmstj/Spring-1.-정적-컨텐츠テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol