Servlet/JSP 4일차

0

Session 객체로 상태 값 저장하기

  • Application 객체
    : Application 전역에서 쓸 수 있다.
  • Seesion 객체
    : Session 범주 내에서 쓸 수 있다.
  • Session이란 현재 접속한 사용자를 의미한다.
  • 이것은 Session별로, 사용자별로 사용하는 공간이 달라진다는 의미이다.
  • Session ID가 동일하면 같은 사용자로 본다.
HttpSession session = request.getSession();
// Session 객체 생성

웹 서버가 Session을 구분하는 방식

  • application --> 공용공간
  • Session --> 개인사물함
  1. 연결을 할 때 session ID가 존재해야지 Session 공간을 사용가능하다.
  2. application 공간은 사용가능
  3. 서버에서 session ID 부여하면 session 공간 사용가능
  • void setAttribute(String name, Object value)
    지정된 이름으로 객체를 설정
  • Object getAttribute(String name)
    지정한 이름의 객체를 반환
  • void invalidate()
    세션에서 사용되는 객체들을 바로 해제
  • void setMaxInactiveInterval(int interval)
    세션 타임아웃을 정수(초)로 설정
  • boolean isNew()
    세션이 새로 생성되었는지를 확인
  • Long getCreationTime()
    세션이 시작된 시간을 반환 1970년 1월 1일을 시작으로 하는 밀리초
  • long getLastAccessedTime()
    마지막 요청 시간, 1970년 1월 1일을 시작으로 하는 밀리초

Cookie를 이용해 상태 값 유지하기

  • 쿠키는 웹 사이트에 접속할 떄 생성되는 정보를 담은 임시 파일이다.
  • 쿠키는 서버가 사용자의 웹 브라우저에 저장하는 데이터를 말한다.
  • 쿠키는 key-value 형태이다.
  • 쿠키는 문자열 형태, url에 들어갈 수 있는 형태로만 저장되어야한다.
    addCookie() / getCookies()
  • 쿠키 저장하기
Cookie cookie = new Cookie("c", String.valueOf(result));
response.addCookie(cookie);
  • 쿠키 읽기
Cookie[] cookies = request.getCookies();
String _c = "";
if (cookies != null)
	for (Cookie cookie : cookies)
    	if("c".equals(cookie.getName()))
        	_c = cookie.getValue();

Cookie의 path 옵션

  • 해당되는 url에서만 Cookie를 가져올 수 있도록 할 수 있다.
Cookie cookie = new Cookie("name", "v");
cookie.setPath("/add/"); // 경로설정 방법
response.addCookie(cookie)

Cookie의 maxAge 옵션

  • 쿠키에 대한 저장기간(만료날짜)을 설정할 수 있다.
Cookie cookie = new Cookie("name", "v");
cookie.setMaxage(24*60*60); // 저장기간 설정

Application/Session/Cookie

  • Application
    • 사용범위 : 전역 범위에서 사용하는 저장 공간
    • 생명주기 : WAS가 시작해서 종료할 때 까지
    • 저장위치 : WAS 서버의 메모리
  • Session
    • 사용범위 : 세션 범위에서 사용하는 저장 공간
    • 생명주기 : 세션이 시작해서 종료할 때 까지
    • 저장위치 : WAS 서버의 메모리
  • Cookie
    • 사용범위 : Web Browser별 지정한 path 범주 공간
    • 생명주기 : Browser에 전달한 시간부터 만료시간까지
    • 저장위치 : Web Browser(클리아언트)의 메모리 또는 파일
    • 저장해야할 기간이 길다면 Cookie를 사용해야한다.
    • 서버자원에 무리를 줄 수 있는 자원이라면 Cookie를 사용해야한다.

    서버에서 페이지 전환해주기(redirect)

  • 간단하지만 많이 쓰는 기능
  • 특정 처리 후, 특정 조건일 때에 지정한 페이지로 이동하고 싶은 경우 사용
    response.sendRedirect(전환할 페이지);

## 동적인 페이지(서버 페이지)의 필요성
- 요청이 있으면 문서가 만들어진다. 이를 동적인 페이지라고 말한다.


27~35

0개의 댓글