25/04/01 (화)
푹 자서 오늘은 열심히 들을 수 있겠습니다..!
어제 수업 못들은거랑 주짓수 못간것까지 오늘 열심히 다 해보겠습니다!
Spring MVC
- Spring MVC 개요
- Spring MVC(Model-View-Controller) 패턴을 사용하면 클라이언트의 요청을 컨트롤러에서 처리하고, 모델을 통해 데이터를 저장·전달한 후, 뷰에서 화면을 출력하는 방식으로 동작
실습
- URL Mapping
@Controller
public class UrlMappingController {
@RequestMapping("/m1") // get post ... 가능
public void m1() { System.out.println("/m1"); }
@RequestMapping(value="/m2", method = RequestMethod.GET ) // get -> @GetMapping
public void m2() { System.out.println("/m2"); }
@RequestMapping(value="/m3", method = RequestMethod.POST ) // post -> @PostMapping
public void m3() { System.out.println("/m3"); }
@GetMapping(value="/m4") //
public void m4() { System.out.println("/m4"); }
@PostMapping(value="/m5") //
public void m5() { System.out.println("/m5"); }
}
- 클라이언트가 특정 URL로 요청을 보낼 때 해당 요청을 처리하는 메서드를 매핑하는 과정
- @GetMapping : GET 요청을 특정 메서드에 매핑
- @PostMapping : POST 요청을 특정 메서드에 매핑
- @RequestMapping : 모든 HTTP 요청을 처리할 수 있으며, method 속성을 사용해 특정 요청을 지정 가능
- Controller
@Controller
public class ViewController {
@GetMapping(value="/viewTest1")
public String viewTest1() { return "viewTest1"; }
@GetMapping(value="/viewTest3")
public String viewTest3(Model model) {
model.addAttribute("seq", "12345");
model.addAttribute("carDto", new CarDto("volvo", 20000, "moon"));
return "viewTest3";
}
}
- 클라이언트 요청을 받아 Model을 이용하여 View로 데이터 전달
- @Controller를 사용하여 컨트롤러 클래스 선언
- Model
@GetMapping(value="/viewTest4")
public ModelAndView viewTest4() {
ModelAndView mav = new ModelAndView();
mav.addObject("seq", "12345");
mav.addObject("carDto", new CarDto("forsche", 20000, "moon"));
mav.setViewName("viewTest4");
return mav;
}
- Model 또는 ModelAndView를 사용하여 데이터를 JSP로 전달
- View에서 데이터를 사용할 수 있도록 저장
- View (JSP)
<!-- viewTest3.jsp -->
<html>
<body>
<h1>Car Info</h1>
<p>Sequence: ${seq}</p>
<p>Car Name: ${carDto.name}</p>
<p>Price: ${carDto.price}</p>
<p>Owner: ${carDto.owner}</p>
</body>
</html>
- JSP : 데이터를 출력하는 화면
- 컨트롤러에서 전달된 데이터를 화면에 출력
- return "viewName"을 통해 JSP 파일과 연결
- Session
@Controller
public class SessionController {
@GetMapping("/session1")
public String login(String username, String password, HttpSession session) {
if("uplus".equals(username) && "1234".equals(password)) {
session.setAttribute("username", username);
}
return "sessionTest1";
}
}
- 사용자 정보를 유지하는 기능
- HttpSession을 사용하여 사용자 정보를 서버에 저장
- 로그인 후 사용자 정보를 유지
- Path Variable
@GetMapping(value="/books/{bookId}")
public void m6(@PathVariable String bookId) {
System.out.println("/m6 : " + bookId);
}
@GetMapping(value="/list/{limit}/{offset}")
public void m7(@PathVariable int limit, @PathVariable int offset) {
System.out.println("/m7 " + limit + " and " + offset);
}
- URL 경로에 값을 포함시켜 데이터 전달
마무리
- WorkShop
- 쿠키와 세션의 관계
- 개인적으로 또는 조별로 urlmapping ~ session Controller, Model, View(JSP) 복습
- 내일 BookManager Project Spring + DB + AJAX 버전
- 내일 진행되는 프로젝트의 앞단 (Controller, DTO, JSP) 미리 만든다
- 정리
- AOP
'LG 유플러스 유레카 > 스프링 프레임워크' 카테고리의 다른 글
[46일 차] 스프링 프레임워크 (SpringBoot MVC DB + Ajax) (0) | 2025.04.02 |
---|---|
[44일 차] 스프링 프레임워크 (Spring DI/AOP) (0) | 2025.03.31 |
[42일 차] 스프링 프레임워크 (BookManager Servlet + JSP(MVC)) (0) | 2025.03.26 |