59.Spring(2)

sumin·2023년 9월 26일
0

아카데미

목록 보기
60/82
post-thumbnail

Parameter 처리

HttpServletRequest

  1. Java EE 표준 방식이다.
  2. 파라미터 뿐만 아니라 session, contextpath와 같은 정보로도 꺼낼 수 있으며 여전히 강력한 도구이다.



    HttpServletRequest
    Http 요청에 대한 정보를 제공하는 객체이다. 서블릿이나 JSP와 같은 웹 애플리케이션에서 클라이언트로부터 들어오는 HTTP 요청과 관련된 정보를 처리하고 추출하기 위해 사용된다.


    HttpServletRequest 객체를 사용하면
  3. HTTP 메서드 : 클라이언트 요청의 HTTP 메서드(GET,POST,PUT,DELETE 등)를 얻을 수 있다.
  4. URL 정보 : 요청된 URL의 정보를 얻을 수 있다.
  5. 헤더 정보 : 요청의 헤더 정보 (브라우저 정보, 인코딩 설정 등)를 얻을 수 있다.
  6. 파라미터 : 요청 URL 또는 요청 본문에서 전달된 파라미터(쿼리 문자열 또는 데이터)를 읽을 수 있다.
  7. 세션관리 : 클라이언트의 세션을 관리하는데 사용할 수 있는 메서드를 제공한다 .
  8. 인증 및 권한 부여 정보 : 클라이언트 인증 및 권한 부여에 관련된 정보를 읽을 수 있다.

@RequestParam 을 이용한 요청 파라미터 처리

  1. 파라미터의 개수가 적은 경우에 유용하다.
  2. 주요 메소드
    1) value : 요청 파라미터의 이름
    2) required : 요청 파라미터의 필수 여부 (디폴트 true) - 요청 파라미터가 없으면 오류 발생
    3) defaultValue : 요청 파라미터가 없는 경우에 사용할 값
  3. @RequestParam 을 생략할 수 있다.

커맨드 객체를 이용한 요청 파라미터 처리

  1. 요청 파라미터를 필드로 가지고 있는 객체를 커맨드 객체라고 한다.
  2. 요청 파라미터를 필드에 저장할 때 Setter 가 사용된다.
  3. 요청 파라미터가 많은 경우에 유용하다.
  4. 커맨드 객체는 자동으로 Model에 저장된다. 저장될때 객체명(Dto)이 아닌 클래스명(BlogDto)으로 저장된다. (클래스명을 LowerCamelCase로 바꿔서 저장한다.)



Session

HttpServletRequest로 부터 HttpSession얻기

HttpSession
자바 웹 애프리케이션에서 세션 관리를 위한 인터페이스이다. 세션은 웹 애플리케이션에서 클라이언트와 서버간의 상태를 유지하고 관리하기 위한 메커니즘 중 하나이다.


1. 상태유지: 클라이어트와 서버간의 연속적인 요청과 응답 사이에서 상태 정보를 유지한다.
2. 세션 데이터 저장: 클라이언트에 대한 임시 데이터응 저장하고 이를 요청에서 사용할 수 있게 한다. 이를 통해 여러페이지 간에 데이터를 공유하고 상태를 유지할 수 있게 한다.
3. 보안 : 세션은 쿠키를 사용하여 클라이언트와 연결되며, 클라이언트에서는 세션ID만 저장된다. 중요한 정보는 서버특에서 안전하게 관리되므로 클라이언트에서 조작하기 어려워 보안측면에거 이점을 가진다,

HttpSession 선언하기

@SessionAttributes

  1. 클래스 레벨의 annotation이다.
  2. Model에 값을 저장하면 HttpSession에 함께 저장한다.
  3. 세션데이터를 사용할 때 주의해야한다. 세션데이터는 클라이언트별로 유지되며 공유 상태를 갖는다.

Session 정보 삭제하기

HttpSession 의 invalidate()메소드

invalidate()
1. 로그아웃: 사용자가 로그아웃을 요청했을때 세션을 무효화 하여 현재 사용자의 로그인 상태를 해제한다.
2. 장바우기 비우기: 웹쇼핑 카트와 같이 저장된 임시 데이터를 비우기 위해 사용될 수 있다.
3. 보안: 사용자가 로그아웃한 후에는 해당 세션에 저장된 정보가 더이상 유호하지 않아야 하므로 invalidate()를 호출하여 이 정보를 삭제한다.
4. 세션만: 일정 시간 동안 활동이 없는 세션을 만료 시키기위해 사용된다. 이렇게 하면 서버 리소스를 효과적으로 관리할 수 있다.

SessionStatus의 setComplete() 메소드

setComplete()
스프링 프레임워크에서 사용되는 Sessionstatus 인터페이스의 메소드 중 하나이다. setComplete()는 세션을 종료하고 컨츠롤러에서 사용한 세션 속성을 초기화 하는데 사용된다. 보통 스프링 웹 애플리케이션에서는 세션을 사용하여 데이터를 유지하고 공유하며 폼처리 시에 세션을 활용한다. 이 세션은 세션을 종료하고 해당 세션에 연결된 모든 데이터를 삭제하려는 경우에 사용된다.

Session 정보 확인하기

HttpSession의 getAttribute() 메소드

웹 애플리케이션에서 세션이나 서블릿 컨텍스트와 같은 범위에서 데이터를 검색하는데 사용되는 메소드이다. 주어진 이름을 기반으로 해당 범위에서 데이터를 검색하고 검색한 데이터를 반환한다.

@SessionAttribute

profile
백엔드 준비생의 막 블로그

0개의 댓글