검색결과 리스트
글
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 19
Spring 정리
2022. 4. 3. 16:26
인프런 강의 36일차.
- 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 1 (김영한 강사님)
- 서블릿, JSP, MVC 패턴
- 서블릿으로 1차 구현
-> 서블릿으로 구현했을 때 불편한 점 개선을 위해 JSP로 2차 구현
-> JSP로도 불편한 점을 개선하기 위해 MVC 패턴으로 3차 구현
3. 스프링 MVC - 구조 이해
3.9 스프링 mvc 컨트롤러 통합
> @RequestMapping 을 잘 보면 클래스 단위가 아니라 메서드 단위에 적용된 것을 확인할 수 있다. 따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다.
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;
import java.util.Map;
@Controller("/springmvc/v2/members")
public class SpringMemberControllerV2 {
private MemberRepository memberRepository = MemberRepository.getInstance();
//Controller에서 매핑된 주소가 prefix로 붙게된다.
@RequestMapping("/new-form")
public ModelAndView newForm() {
return new ModelAndView("new-form");
}
@RequestMapping("/save")
public ModelAndView save(Map<String, String> paramMap) {
List<Member> members = memberRepository.findAll();
ModelAndView mv = new ModelAndView("members");
mv.addObject("members", members); //mv.getModel().put("members", members); //members 리스트로 저장
return mv;
}
@RequestMapping
public ModelAndView members(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 mv = new ModelAndView("save-result");
mv.addObject("member", member); //mv.getModel().put("member", member); //멤버 모델에 저장
return mv;
}
}
- web.springmvc.v2.SpringMemberControllerV2
- v1에서 각 클래스로 나누어져 있던 기능을 하나의 Controller 파일에 통합해서 구현하였다.
- 최초 v1 메소드 복사 시 각 메소드의 매핑이 절대경로로 되어 있었으나 "/spring/mvc/v1/members" 부분은 중복이므로 해당 url은 Class단으로 올려서 Contoller에 정의해주면 prefix로 조합된다.
- class url + method url 이 최종 메소드 호출 url이 된다.
'Spring 정리' 카테고리의 다른 글
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 21 (0) | 2022.05.15 |
---|---|
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 20 (0) | 2022.04.03 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 18 (0) | 2022.04.03 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 17 (0) | 2022.02.02 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 16 (0) | 2021.12.07 |