[45일 차] 스프링 프레임워크 (Spring MVC)

2025. 4. 1. 11:51·LG 유플러스 유레카/스프링 프레임워크

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
'LG 유플러스 유레카/스프링 프레임워크' 카테고리의 다른 글
  • [47일 차] 스프링 프레임워크 (SpringBoot DB Mybatis + Ajax)
  • [46일 차] 스프링 프레임워크 (SpringBoot MVC DB + Ajax)
  • [44일 차] 스프링 프레임워크 (Spring DI/AOP)
  • [42일 차] 스프링 프레임워크 (BookManager Servlet + JSP(MVC))
문태신
문태신
3대500 백엔드 개발자가 꿈입니다.
  • 문태신
    별 될 시간
    문태신

  • 전체
    오늘
    어제
    • 전체 글 (82) N
      • LG 유플러스 유레카 (78) N
        • 강의 정리 (5)
        • 소프트웨어 엔지니어링 (8)
        • 알고리즘 (13)
        • 데이터베이스 활용 (5)
        • 미니 프로젝트 1 (3)
        • 데이터베이스 심화 (5)
        • 프론트엔드 이해 (3)
        • 깃허브 특강 (2)
        • 취업 특강 (2)
        • 스프링 프레임워크 (16)
        • 후기 (1)
        • REST API (9)
        • 미니 프로젝트 2 (6) N
      • 자격증 (1)
      • 디자인 (2)
      • 감상문 (1)
        • 책 (0)
        • 영화 (1)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
문태신
[45일 차] 스프링 프레임워크 (Spring MVC)
상단으로

티스토리툴바