第2節.Spring Web開発基盤
10672 ワード
静的コンテンツ:サーバからWebにファイルをダウンロードします.
MVCとテンプレートエンジン(jsp...など...htmlを動的に置き換えることでダウングレード)
←このモードで開発が多い
静的コンテンツとは異なり、サーバ上での変換と置換
API-jsonという名前のパケットにデータを転送します.view, react ...
サーバ間の通信はapi方式を採用している.
静的コンテンツ
controller
モデル関連セクション:ビジネス関連/内部ロジックの処理に焦点を当てます.
view
全力でスクリーンを描く
変換されるので、ブラウザはこのように表示されます.API
クライアントHTTP受信ヘッダとサーバ上のコントローラ返却タイプ情報を組み合わせて「HttpMessageConverter」を選択します.
今ではほとんどjsonしか使われていません.
MVCとテンプレートエンジン(jsp...など...htmlを動的に置き換えることでダウングレード)
←このモードで開発が多い
静的コンテンツとは異なり、サーバ上での変換と置換
API-jsonという名前のパケットにデータを転送します.view, react ...
サーバ間の通信はapi方式を採用している.
静的コンテンツ
スプリングは静的コンテンツ機能を起動します.
https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html
MVCとテンプレートエンジン
mvc = model, view, controller
mvc = model, view, controller
controller
モデル関連セクション:ビジネス関連/内部ロジックの処理に焦点を当てます.
@Controller
public class HelloController {
@GetMapping("hello-mvc")
// name = parameter이기 때문에 값을 넘겨줘야 작동한다, html 마지막에 ?name=value라고 하면 됨.
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
view
全力でスクリーンを描く
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello-template</title>
</head>
<body>
<p th:text="안녕하세요. + ${name}" >hello! empty</p>
</body>
</html>
変換されるので、ブラウザはこのように表示されます.
<body>
<p>안녕하세요. spring</p>
</body>
API
エンジンレンダリングでhtmlで降格するか、apiでデータ自体を降格するかに重点を置きます.apiは後者です.
コントローラで解決し、個別のビュー部分はありません.@GetMapping("hello-string")
// http에서 헤더부분과 바디부부이 있다. http의 바디부분에 이 네임을 직접 넣어주겠다는 뜻.
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name; //name이 spring이면 hello spring
}
サーバーhtmlの表示<body> hello spring </body>
データ収集時の特化@GetMapping("hello-api")
@ResponseBody
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) {
this.name = name;
}
}
サーバhtmlをチェックすると、-jsonが返されます.デフォルトではJsonを返します.<pre style="word-wrap: break-word; white-space: pre-wrap;">{"name":"spring"}</pre>
@GetMapping("hello-string")
// http에서 헤더부분과 바디부부이 있다. http의 바디부분에 이 네임을 직접 넣어주겠다는 뜻.
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name; //name이 spring이면 hello spring
}
<body> hello spring </body>
@GetMapping("hello-api")
@ResponseBody
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) {
this.name = name;
}
}
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"name":"spring"}</pre>
今ではほとんどjsonしか使われていません.
Reference
この問題について(第2節.Spring Web開発基盤), 我々は、より多くの情報をここで見つけました https://velog.io/@byungyuri126/섹션2.-스프링-웹-개발-기초テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol