スプリングMVC-4
5074 ワード
<ソース>
Spring MVC 1編-バックエンドWeb開発キーテクノロジー/インフラ講座/金栄漢
5.スプリングMVC-構造-スプリングMVC-起動について
5.スプリングMVC-構造-集積スプリングMVC-コントローラの理解
5.スプリングMVC-構造-スプリングMVC-実用方法を理解する
5.スプリングMVC-構造の理解と整理
関連コード
https://github.com/sunghoonking/spring-mvc-inflearn/tree/main/src/main/java/hello/servlet/web
スプリングMVC-起動
スプリングが提供するコントローラはシミュレーションに基づいており、非常に柔軟で実用的です.過去、Java言語ではプレゼンテーションも行われておらず、Springも最初からこのような柔軟なコントローラを提供していなかった.
スプリングMVC-コントローラ統合
スプリングMVC-実用方法
整理する
'
Spring MVC 1編-バックエンドWeb開発キーテクノロジー/インフラ講座/金栄漢
5.スプリングMVC-構造-スプリングMVC-起動について
5.スプリングMVC-構造-集積スプリングMVC-コントローラの理解
5.スプリングMVC-構造-スプリングMVC-実用方法を理解する
5.スプリングMVC-構造の理解と整理
関連コード
https://github.com/sunghoonking/spring-mvc-inflearn/tree/main/src/main/java/hello/servlet/web
スプリングMVC-起動
スプリングが提供するコントローラはシミュレーションに基づいており、非常に柔軟で実用的です.過去、Java言語ではプレゼンテーションも行われておらず、Springも最初からこのような柔軟なコントローラを提供していなかった.
スプリングMVC-コントローラ統合
SpringMemberControllerV2
package hello.servlet.web.springmvc.v2;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 클래스 단위 -> 메서드 단위
* @RequestMapping 클래스 레벨과 메서드 레벨 조합
*/
@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@RequestMapping("/new-form")
public ModelAndView newForm() {
return new ModelAndView("new-form");
}
@RequestMapping("/save")
public ModelAndView save(HttpServletRequest request, HttpServletResponse
response) {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
ModelAndView mav = new ModelAndView("save-result");
mav.addObject("member", member);
return mav;
}
@RequestMapping
public ModelAndView members() {
List<Member> members = memberRepository.findAll();
ModelAndView mav = new ModelAndView("members");
mav.addObject("members", members);
return mav;
}
}
スプリングMVC-実用方法
실무에서 사용하는 방식
package hello.servlet.web.springmvc.v3;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* v3
* Model 도입
* ViewName 직접 반환
* @RequestParam 사용
* @RequestMapping -> @GetMapping, @PostMapping
*/
@Controller
@RequestMapping("/springmvc/v3/members")
public class SpringMemberControllerV3 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@GetMapping("/new-form")
public String newForm() {
return "new-form";
}
@PostMapping("/save")
public String save(
@RequestParam("username") String username,
@RequestParam("age") int age,
Model model) {
Member member = new Member(username, age);
memberRepository.save(member);
model.addAttribute("member", member);
return "save-result";
}
@GetMapping
public String members(Model model) {
List<Member> members = memberRepository.findAll();
model.addAttribute("members", members);
return "members";
}
}
整理する
'
1. HTTP 요청이 오면 Dispatcher Servlet에게 온다
2. 핸들러 매핑에서 핸들러 조회를 한다
(スプリングガイドにより複数のハンドルが登録され、順番にそれらを検索してHandlerマッピングで処理可能なハンドルを検索します)3. 찾아서 핸들러 어댑터 목록에 떤져주고 핸들러 어댑터는 처리할 수 있다고 하면 핸들러 어댑터를 통해서 실제 핸들러를 호출하고 ModelAndView를 반환 한다
4.그리고 ViewResolver를 호출해서 실제 View를 찾는다
5. View가 렌더가 되면서 실제 고객에게 HTTP 응답이 나가게 된다
Reference
この問題について(スプリングMVC-4), 我々は、より多くの情報をここで見つけました https://velog.io/@shkim1199/스프링-MVC-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol