Spring 5

정해랑·2024년 4월 2일
  1. @ModelAttribute - 요청 파라미터 처리
  • @ModelAttribute는 item 객체를 생성하고, 요청 파라미터의 값을 프로퍼티 접근법(set...)으로 입력해 준다.

  • @ModelAttribute의 중요한 한가지 기능이 더 있는데, 바로 모델(Model)에 @ModelAttribute로 지정한 객체를 자동으로 넣어준다. 즉, model.addAttribute("item",item);가 주석처리 되어 있어도 잘 동작하는 것을 확인할 수 있다.

  • 만약 @ModelAttribute("hello") item item 이름을 hello로 지정하면 model.addAttribute("hello",item); 모델에 hello 이름으로 저장

  • reAttributes.addAttribute
    : url뒤에 붙으며, 리프레시해도 데이터가 유지된다

  • reAttributes.addFlashAttribute
    : url뒤에 붙지 않는다. 일회성이라 리프레시할 경우
    데이터가 소멸한다

  1. 로그인 처리하기
  • 로그인 상태 유지 : 쿠키
  • 로그인 상태 유지 : 세션
  1. session
  • 세션의 create 옵션
  • request.getSession(true);
    : 세션이 있으면 기존 세션을 반환한다
    없으면 새로운 세션을 생성해서 반환한다.
    true가 기본값
  • request.getSession(false);
    : 세션이 있으면 기본 세션을 반환
    세션이 없으면 새로운 세션을 생성하지 않는다.
    null을 반환한다.
  1. 서블릿 필터
  • 필터는 서블릿이 지원하는 수장문이다.
  • HTTP요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러
  • 필터를 적용하면 필터가 호출된 다음에 서블릿이 호출이 된다. 그래서 모든 고객의 요청 로그를 남기는 요구사항이 있다면 필터를 사용해야 한다.
  • 스프링 사용시 서블릿은 스프링의 디스패처 서블릿으로 생각하면 된다.

4-1. 필터 제한

  • HTTP 요청 -> WAS -> 필터 ( 적절하지 않은 요청이라 판단, 서블릿 호출 X )

4-2. 필터 체인

  • HTTP요청 -> WAS -> 필터1 -> 필터2 -> 필터3 -> 서블릿 -> 컨트롤러
  • 필터는 체인으로 구성되는데, 중간에 필터를 자유롭게 추가할 수 있다. 예를 들어 로그를 남기는 필터를 먼저 적용 후, 그 다음에 로그인 여부를 체크하는 필터를 만들 수 있다.

0개의 댓글