서블릿 2

2021. 1. 6. 16:13스프링 부트 정리

1. 필터

서블릿이 요청에대한 전처리 작업을 할 경우 필터를 사용한다.

  • 웹 필터
    필터는 필터 인터페이스를 상속받아 만들 수 있다.
    필터는 서블릿의 생명 주기처럼 init과 destroy메서드를 가지고 있고 필터 기능을 위한 doFilter메서드가 있다.
    필터의 URL매핑을 위해서 WebFilter어노테이션을 사용할 수 있다.
    WebFilter어노테이션 사용방법은 기존 서블릿과 같다.
    필터는 URL을 기중으로 요청에대한 전처리를 할 수 있고 특정 서블릿에 대해 매핑 할 수도 있다.
    특정 서블릿을 기준으로 할 경우 서블릿 이름으로 매핑한다.

2. 쿠키

  1. 쿠키의 구성 - 쿠키는 사용자가 사이트 방문시에 컴퓨터에 자장되는 정보로 다음과같은 구성요소를 갖는다.

    1-1. 이름 - 각각의 쿠키값을 식별하기 위한 키
    1-2. 값 - 특정 이름으로 쿠키에 지정된 값
    1-3. 유효시간 - 쿠키의 유지 시간
    1-4. 도메인 - 쿠키를 전송할 도메인
    1-5. 경로 - 쿠키를 전송할 요청 경로

    쿠키는 HTTP헤더 정보에 포함되어 전달된다.
    HTTP프로토콜은 비연결 지향을 상태 정보를 저장하지 않기 때문에 쿠키를 사용한다
  2. 쿠키생성 - 쿠키를 생산할 때는 Cookie객체를 생성해서 만들 수 있다.

    쿠키는 map과 같이 key, value 형태로 사용하고 도메인과 최대 유효기간 등을 설정할 수 있다.
    또한 쿠키 생성시에 setDomain("도메인 주소")를 입력 하면 특정 도메인 에서만 사용이 가능하다.
    쿠키를 사용하려면 request객체에서 getCookies메서드로 저장된 쿠키를 꺼낸뒤에 생성시 선언한 key값으로 저장된 쿠키값을 출력할 수 있다.

  3. 쿠키값 수정및 삭제 - 쿠키 값을 변경 하려면 같은 이름으로 쿠키를 생성해서 새로운 값을 지정하면 된다.
    쿠키는 삭제하는 API가 없다.
    따라서 유효시간을 0으로 설정한다.

쿠키 수정 코드
쿠키 생성 코드

3. 세션

  1. 세션의 구성

    세션은 서버와 클라이언트의 유효한 커넥션을 식별하는 정보이다.
    클라이언트가 요청을 보내면 식별할 수 있는 ID를 부여 하는데 이 ID가 세션 ID가 된다.
    세션 ID는 JSESSIONID란 이름으로 쿠키로 저장되어있다.
    서블릿에서는 세션이 HTTPSession인터페이스로 정의 되어있다.
  2. 세션 생성

    생성된 Session 정보는 request객체를 꺼내서 사용할 수 있다.
    서블릿에서 세션을 사용하려면  HttpSession객체를 선언하여 request.getSession함수로 가져온다음 사용하면 된다.
  3. 세션에 값 저장및 삭제

    세션에 값을 저장하는 방식은 쿠키와 동일하게 이름, 값으로 저장이 가능하다.
    저장은 setAttribute(이름, 값)함수를 사용하여 저장 할 수 있다.
    반대로 정보를 가져오려면 getAttribute(이름)을 하면 된다.
    여기서 getAttribute의 반환형은 Object타입 이므로 형변환을 하여 사용해야 한다.

세션 생성 코드

 

'스프링 부트 정리' 카테고리의 다른 글

IOC(제어반전)와 DI(의존성 주입)이란???  (0) 2021.01.21
서블릿 1  (0) 2021.01.05
개발환경의 변화와 자바  (0) 2021.01.02