서블릿 2
2021. 1. 6. 16:13ㆍ스프링 부트 정리
1. 필터
서블릿이 요청에대한 전처리 작업을 할 경우 필터를 사용한다.
- 웹 필터
필터는 필터 인터페이스를 상속받아 만들 수 있다.
필터는 서블릿의 생명 주기처럼 init과 destroy메서드를 가지고 있고 필터 기능을 위한 doFilter메서드가 있다.
필터의 URL매핑을 위해서 WebFilter어노테이션을 사용할 수 있다.
WebFilter어노테이션 사용방법은 기존 서블릿과 같다.
필터는 URL을 기중으로 요청에대한 전처리를 할 수 있고 특정 서블릿에 대해 매핑 할 수도 있다.
특정 서블릿을 기준으로 할 경우 서블릿 이름으로 매핑한다.
2. 쿠키
- 쿠키의 구성 - 쿠키는 사용자가 사이트 방문시에 컴퓨터에 자장되는 정보로 다음과같은 구성요소를 갖는다.
1-1. 이름 - 각각의 쿠키값을 식별하기 위한 키
1-2. 값 - 특정 이름으로 쿠키에 지정된 값
1-3. 유효시간 - 쿠키의 유지 시간
1-4. 도메인 - 쿠키를 전송할 도메인
1-5. 경로 - 쿠키를 전송할 요청 경로
쿠키는 HTTP헤더 정보에 포함되어 전달된다.
HTTP프로토콜은 비연결 지향을 상태 정보를 저장하지 않기 때문에 쿠키를 사용한다 - 쿠키생성 - 쿠키를 생산할 때는 Cookie객체를 생성해서 만들 수 있다.
쿠키는 map과 같이 key, value 형태로 사용하고 도메인과 최대 유효기간 등을 설정할 수 있다.
또한 쿠키 생성시에 setDomain("도메인 주소")를 입력 하면 특정 도메인 에서만 사용이 가능하다.
쿠키를 사용하려면 request객체에서 getCookies메서드로 저장된 쿠키를 꺼낸뒤에 생성시 선언한 key값으로 저장된 쿠키값을 출력할 수 있다. - 쿠키값 수정및 삭제 - 쿠키 값을 변경 하려면 같은 이름으로 쿠키를 생성해서 새로운 값을 지정하면 된다.
쿠키는 삭제하는 API가 없다.
따라서 유효시간을 0으로 설정한다.
3. 세션
- 세션의 구성
세션은 서버와 클라이언트의 유효한 커넥션을 식별하는 정보이다.
클라이언트가 요청을 보내면 식별할 수 있는 ID를 부여 하는데 이 ID가 세션 ID가 된다.
세션 ID는 JSESSIONID란 이름으로 쿠키로 저장되어있다.
서블릿에서는 세션이 HTTPSession인터페이스로 정의 되어있다. - 세션 생성
생성된 Session 정보는 request객체를 꺼내서 사용할 수 있다.
서블릿에서 세션을 사용하려면 HttpSession객체를 선언하여 request.getSession함수로 가져온다음 사용하면 된다. - 세션에 값 저장및 삭제
세션에 값을 저장하는 방식은 쿠키와 동일하게 이름, 값으로 저장이 가능하다.
저장은 setAttribute(이름, 값)함수를 사용하여 저장 할 수 있다.
반대로 정보를 가져오려면 getAttribute(이름)을 하면 된다.
여기서 getAttribute의 반환형은 Object타입 이므로 형변환을 하여 사용해야 한다.
'스프링 부트 정리' 카테고리의 다른 글
IOC(제어반전)와 DI(의존성 주입)이란??? (0) | 2021.01.21 |
---|---|
서블릿 1 (0) | 2021.01.05 |
개발환경의 변화와 자바 (0) | 2021.01.02 |