세션(Session)
- 내장 객체가 존재 ( session . ~~ )
- 세션 자료형 Object 형
- 세션은 웹 브라우저마다 할당 받음
쿠키(Cookie)
- 직접 객체 생성 필요 ( new Cookie() )
- 쿠키 자료형 String
세션 내장객체 이용 방법
세션 값 저장 (setAttribute)
- 세션에 값을 저장
session.setAttribute(String name, Object value)
"title"이라는 세션 ID에 "JSP Programming" 이라는 값을 저장
session.setAttribute("title", "JSP Programming");
세션 가져오기 (getAttribute)
- 세션 명을 통하여 값을 가져옴
- object형으로 반환 받기 때문에 String or Integer 로 타입캐스팅 하여 받아와야함.
session.getAttribute(String name)
모든 세션 이름 반환(session.getAttributeNames())
session.getAttributeNames();
Enumeration enums = session.getAttributeNames();
세션 이름을 next하는 함수 ( nextElement() )
enums.nextElement()
String name = (String)enums.nextElement();
데이터 유무 판단 메소드 ( hasMoreElements() )
- 읽어 올 요소가 남아있는지 판단
- 있으면 true, 없으면 false 반환
enums.hasMoreElements()
while(enums.hasMoreElements()){
.....
.....
}
예 시
Enumeration enums = session.getAttributeNames();
while(enums.hasMoreElements()){
String name = (String)enums.nextElement();
out.print(name+"<br>");
out.print(session.getAttribute(name));
out.print("<hr>");
}
현재 세션에 저장되어 있는 값
세션 유효시간
- default = 30분
유효시간 설정
session.setMaxInactiveInterval(int seconds)
session.setMaxInactiveInterval(60*5)
유효시간 불러오기
session.getMaxInactiveInterval()
int s_time = session.getMaxInactiveInterval()
세션 당 유지시간 확인 (밀리 세컨즈로 반환)
getId() - 세션 ID 확인(동일 브라우저는 같은 세션 ID 할당)
getLastAccessedTime() - 마지막에 접속했던 시간
getCreationTime() - 최초 생성했던 시간
세션 유지 시간 구하는 방법
getLastAccessedTime() - getCreationTime()
String session_id = session.getId();
long last_time = session.getLastAccessedTime();
long start_time = session.getCreationTime();
long keeping_time = (last_time - start_time) / 1000;
out.print("1. 세션 아이디: " + session_id +"<br>");
out.print("2. 세션 유지된 " + keeping_time+" 초" +"<br>");
세션에 설정된 '값' '삭제' 하는 방법
- invalidate() 함수는 세션을 파기하는 것이기 때문에 파기 후 session 객체에 접근을 못함
- 그래서 isRequestedSessionInvalid() 로 추가로 유효성 검사해야함
단일 세션 삭제
removeAttribute("세션명");
세션 값 삭제
invalidate()
// 단일 세션 삭제
session.removeAttribute("세션명");
// 모든 세션 삭제
session.invalidate();
invalidate()로 세션을 전부 파기 후 getAttribute 하면 아래와 같은 에러 발생
세션의 유효성을 판단하는 함수 (isRequestedSessionInvalid)
reqeust.isRequestedSessionInvalid()
if(request.isRequestedSessionIdValid() == true){
out.print("세션이 유효합니다");
}
else{
out.print("세션이 유효하지 않아요");
}
쿠키(Cookie)
- 웹 사이트에서 사용 될 4KB 이하 크기의 임시 파일
- 네트워크 환경에서 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하지 위해 사용
- 클라이언트의 응답을 통하여 쿠키를 기록할 수 있음 (response 객체)
- 쿠키를 삭제하는 명령은 없음 (삭제하려면 유효기간 'setMaxAge'를 0을 설정)
쿠키 생성
new Cookie("쿠키이름", "쿠키 값")
쿠키 기록 (클라이언트 측에 )
response.addCookie(쿠키이름);
쿠키 정보 반환
request.getCookies() - 모든 쿠키 정보 반환, 배열을 반환
Cookie[] cookies = request.getCookie();
request.getName() - 쿠키 이름 반환
request.getValue() - 쿠키에 설정된 값을 반환
Cookie [] cooks = request.getCookies();
if(cooks !=null){ //쿠키가 있을경우만 동작
out.print("쿠키의 개수 : " + cooks.length+"<br>");
out.print("<hr>");
for(Cookie coo:cooks){
out.print("쿠키이름: " + coo.getName() +"<br>");
out.print("쿠키값: " + coo.getValue() +"<br>");
out.print("<hr>");
}
}
쿠키 유효기간 설정 ( setMaxAge )
cookie.setMaxAge(시간)
- 시간을 0으로 설정하면 쿠키 삭제 가능.
쿠키에 값 설정 ( setValue )
request.setValue()
다른 페이지로 이동 ( sendRedirect )
response.sendRedirect("이동할 페이지");
반응형
'개발 > JSP' 카테고리의 다른 글
(JSP) MVC 패턴 (0) | 2022.05.23 |
---|---|
(JSP) 액션 태그 (Action Tag) (0) | 2022.05.22 |
(JSP) href로 파라미터 전달하기 (0) | 2022.05.21 |
(JSP) ResultSet (0) | 2022.05.19 |
(Java) JSP 에러페이지 만들기 (예외처리) (0) | 2022.05.18 |
댓글