Cookie
http 통신규약에선 서버와 클라이언트가 통신 후 관계를 종료한다. 때문에 페이지 로드시에 반복적인 작업이 있으면 해당 정보를 쿠키로 만들어서 클라이언트 측에 저장한다. 이 정보를 쿠키라 한다. 서버에선 어떤 요청에 응답시 클라이언트가 가지고 있는 쿠키의 속성 값을 참조하거나 변경하면서 이용함.
쿠키는 보안에 취약해 개인정보나 보안이 필요한 정보는 잘 저장하지 않는편.
- 쿠키생성 - 쿠키 클래스 이용 Cookie cookie = new Cookie("name", "value");
- 속성 설정 - setter를 이용해 쿠키의 속성 값 설정 cookie.setValue();
- response객체에 쿠키 탑재 - response.addCookie(cookie)
- 쿠키를 불러올땐 Cookie[] cookies = request.getCookies() 로 받음.
request에 저장되어 있는 모든 쿠키를 배열로 받는다.
쿠키객체 메서드
.setMaxAge() 쿠키값 유지 시간 지정, n초 단위로 값 입력
.setpath() 쿠키사용 유효 디렉토리 설정 (아무 디렉토리에서나 쿠키에 접촉하지 못하도록 함)
.setValue() 쿠키값 설정
.setVersion()
.getMaxAge()
.getName()
.getPath()
.getValue()
.getVersion()
쿠기생성하고 response에 보내기
Cookie cookie = new Cookie("name", "value");
cookie.setMaxAge(60*60) 60초*60분 = 1시간
response.addCookie(cookie);
쿠키 받기
Cookie[] cookies = resquest.getCookies();
쿠키 삭제
cookie.setMaxAge(0);
여러 jsp 를 이동하면서(response.sendRedirect("redirect.jsp")) 이동할 페이지엔 response.addCookie로,
이동한 페이지에선 request.getCookies 로 쿠키를 주고 받으며 데이터가 이동한다.
Cookie는 String만 저장, Session은 obj를 저장.
Session
세션 쿠키와 마찬가지로 서버와 웹브라우저 간 관계를 유지하는 수단. 단 쿠키와 다르게 서버상에 객체로 존재한다.
때문에 쿠키와 다르게 서버에서만 접근이 가능해 보안이 높고 저장할수 있는 데이터에 한계가 없다.
세션은 클라이언트가 서버에 요청을 하면 자동으로 생성된다. session의 메서드들을 이용해 속성을 설정 할 수 있다.
한 클라이언트(브라우저)와 접촉당 하나의 session이 만들어 지기 때문에, 해당 연결에 속하는 어느 페이지에서든 session에 접근할수 있다.
(페이지 이동시 response, request로 정보를 주고 받을 필요가 없다.)
Session 호출 HttpSession session = request.getSession();
setAttribute(name, obj) 세션에 데이터를 저장할때 메서드
getAttribute(name) 세션에서 데이터를 가져옴 , 리턴하는 세션의 value타입은 obj 다. (형변환 필수)
removeAttriute(name) 세션에서 특정(name) 데이터 제거
getAttributeName() 세션에 저장중인 이름(키값)을 얻음, 리턴은 Enum으로
getId() 세션의 유니크 아이디를 얻음 (서버에서는 클라이언트의 요청에 따라 여러 session이 생성되기 때문에)
isNew() 세션이 새로생성된것인지 확인
getMaxInactiveInterval() 세션의 유효시간을 리턴(초 단위), int 타입 n초 디폴트 1800(30분)
invalidate() 세션의 모든 데이터를 삭제
'JSP+Servlet' 카테고리의 다른 글
7.JSTL (Java Standard Tag Library) (0) | 2020.01.08 |
---|---|
6.EL (Expression Language) (0) | 2020.01.08 |
3.JSP (0) | 2020.01.08 |
4.내장객체 Request, Response (0) | 2020.01.08 |
2.Servlet (0) | 2020.01.08 |