12월 27일 Day43

여우·2022년 12월 27일
0

공부중

목록 보기
37/38

Spring 개념 이해하기

어제에 이어 Spring 운영 개념 수업을 진행 하게 되었다.
오늘은 그중에서 Controller 와 관련된 내용들을 위주로 공부가 진행 되었다.

Controller

  1. controller 란?

스프링에서는 사용자가 보는 화면 (jsp페이지들)과 기능구현페이지(java 페이지들)이 따로 존재하게 되는데 jsp페이지에서는 이미 구현된 자바 메서드들 값을 표현하는 방식이고 java는 메서드를 실행하는 공간이다. 이둘을 이어서 자바페이지에서 얻은 값이나 내용을 jsp 페이지에서 출력해주기 위해 연결을 도와주는것이 Controller이다.

  1. controller 생성방법
    어노테이션을 이용하여 controller를 생성합니다.

    컨트롤러로 만들 클래스의 위에 @Controller 라고 적어주고 ctrl + space 를 하게 되면 자동으로 import가 되며 controller 어노테이션 적용되면 자동으로 bean이 등록되어 사용이 가능해진다.

  2. RequestMapping
    controller어노테이션을 만들게되면 요청 URL에 해당하는 메소드를 매핑해줄수있는 RequestMapping 어노테이션을 생성합니다. (

    요청의 방식에 따라 메서드의 오버로딩이 성립이 되며 반환형이 없는 경우 요청을 실행한 url이 되고, 반환형이 있는경우 해당 이름을 가진 jsp페이지가 된다.

RequestMapping은 value="요청주소" , method=RequestMethod.(GET or POST)형식으로 사용이 된다

  1. RequestMapping의 간단한 버전

@GetMapping 과 @PostMapping을 각각 import 해주고 해당 method에 따라 실행할 메서드들도 만들어준다.

Model은 HttpServletRequest의 가벼운 버전의 객체로 request를 대신해 attribute에 값을 전달을 해준다.

  1. ModelAndView
    Model에서 기능이 추가된것이 ModelAndView이다.

ModelAndView는 객체 생성시 매개 변수로 viewName을 지정할수 있고, 아니면 setViewName()으로도 지정할수 있다. 지정된 viewName의 jsp 페이지로 포워드 된다. 그리고 jsp에 넘길 attribute는 오브젝트 타입으로 addObject() 메서드를 통하여 추가해준다.

  • 커맨드 객체
    Mapping 어노테이션으로 으로 매개 변수를 받게 되는곳의 매개변수가 많아진다면 해당 자리는 많은 값들을 @RequestParam 어노테이션이라던가 request.getParameter()등으로 코드 가독성도 떨어지고 길이가 무척 길어질것이다 이를 해결하기 위해 등장한것이 바로 커맨드 객체이다.커맨드 객체(Command Object) 란 HttpServletRequest 를 통해 들어온 요청 파라미터들을 setter 메서드를 이용하여 객체에 정의되어있는 속성에 바인딩이 되는 객체를 의미한다.
    이전 JSP에서 많이 사용했던 DTO라고 생각하면 된다. 그러므로 클래스를 따로 설정하여 자바빈즈 규칙에 맞게 private 맴버필드, getter와 setter 그리고 기본생성자를 생성해주어야 한다.

다른 패키지에서 클래스를 생성

  1. HashMap 타입
    컨트롤러의 mapping시 넘어오는 매개변수들을 HashMap 타입으로 key 와 value값으로 지정하여 전달 받아서 처리하는 타입이다.
profile
우당탕탕 지금은 개발중

0개의 댓글