동적 웹페이지에서의 상태유지

devlsn96·2024년 9월 8일
0

1. 웹사이트에서의 상태유지의 필요성

  • 동적페이지로 쉽게 접근하기위해서는 브라우저에서 사용하는 방법이 크게 4가지가 있다.

1-1. application

  • 하나의 어플리케이션이 생성되고 소멸될 때까지 계속 유지한다.

✅ 1-2. session

  • 로그인 정보를 저장할 때 사용한다.
  • 하나의 웹브라우저의 정보를 유지하기 위한 세션 정보를 저장한다.
  • 브라우저 종료시에 종료되는데, 이는 클라이언트의 로그인 정보를 저장하는 데 "세션"이 사용된다.
  • 세션은 브라우저마다 한 개씩 존재하고, "고유한 세션 ID"생성 후 정보를 추출한다. (그 방법은 아래 코드에서 살펴볼 예정...)
  • 세션의 저장 용량은 제한이 없다.
  • 사용자의 브라우저가 종료되는 시점에 세션도 제거가 된다.

📍 소스코드로 구현하기

// request 객체안에서 session 객체를 가져오기 
HttpSession session = arg0.getSession();
// response 객체에 출력을 위한 객체 PrintWriter를 생성
PrintWriter out = arg1.getWriter();
// 파라미터로 가져오기
String value_ = arg0.getParameter("value");
String op = arg0.getParameter("operator");
int value = 0;
// value   값이 빈 값인지 유효성 검사
if ( value_ != null && !value_.equals("") ) {
	value = Integer.parseInt(value_);
}
if ( op.equals("=") ) {	
int x = (Integer)session.getAttribute("value");
String operator = (String)session.getAttribute("op");
// 새로운 request에서 꺼내온 parameter값
int result = 0;
if (operator.equals("+")) {
		result = x + value;
} else {
		result = x - value;
}

1. 세션에 값 저장

session.setAttribute("key",value);
session.setAttribute("id","admin");

2. 세션에 저장된 값 가져오기

session.getAttribute("id");

3. 세션에 저장된 값을 삭제

session.removeAttibute("id");
// 세션값 전체 제거
session.invalidate(); 	

  • 빅데이터 정보를 수집하기 위해서 존재한다.
  • 웹 브라우저가 보관하고 있는 데이터로 웹 서버에 요청을 보낼때 쿠키를 헤더에 담아서 전송한다.
  • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
  • 정보가 사용자 컴퓨터에 저장되기 때문에 보안에 위협을 받을 수 있다.
  • 데이터 저장용량에 제한이 있다.
    (과자 부스러기처럼 작은 값을 저장한다)
  • 일반사용자가 브라우저 내의 기능인 "쿠키차단"을 사용하면 무용지물이다.

    📍 소스코드로 구현하기

      1. 쿠키를 생성하고 response(응답)에 객체를 담는다.
        Cookie cookie = new Cookie("쿠키이름", "쿠키값");
        response.addCookie(cookie);
      1. 쿠키의 존재 유무를 확인 후에 쿠키값을 받아온다.
        String check = request.getHeader("Cookie");  // 헤더에서 확인
        if (check != null) {
        	Cookie[] cookies = request.getCookies();
        }

profile
Quantum Jump to class for java….

0개의 댓글