세션 트래킹 (Session Tracking) [JSP 기초]

2022. 1. 6. 13:30·JAVA/JSP & Servlet

세션트래킹

1. 세션 트래킹이란?

세션이란 특정한 시점에서의 구간을 뜻하고, 세션 트래킹이란 요청된 세션을 찾아 주는 동작이다.

다시 말하자면, 세션 트래킹이란 사용했던 시점의 기록을 이용자에게 찾아줘서 상태를 유지시켜주는 것을 의미한다.

 

각각의 사용자에게 알맞은 상태를 전달하기 위해서 각 세션마다 세션 ID를 부여하고 서버에서 그 아이디를 보관한다.그렇다면 서로 다른 컴퓨터가 동일한 웹페이지에 접속해도 각각의 웹 브라우저는 다른 세션 ID를 부여받기 때문에 다른 정보가 뜰 것이고, 세션도 따로 유지된다.

 

 

2. session의 메소드

메소드 설명
void setAttribute(String name, Object value) 주어진 "name"에 속성값인 value 저장
Object  getAttribute(String name) 주어진 "name"의 속성값을 반환
void  removeAttribute(String name) 주어진 "name"의 속성값을 제거
 String  getId() 세션 고유 ID값을 문자열 반환
void  setMaxInactiveInterval() 세션 유지 시간을 초단위로 저장, default 값은 30분
int  getMaxInactiveInterval() 세션 유지 시간을 반환
void  invalidate() 현재 세션을 종료 및 제거
boolean  isNew() session 객체가 처음 생성되었을 경우에만 true 반환

session의 메소드를 정리하면 위와 같다.

session.setAttribute("문자열", 객체), session.getId() 와 같은 형식으로 사용하면 된다.

 

 

 

3. 세션을 이용해 ToDoList 만들어보기

-todoList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.util.*" %>

<html>

<body>
<h1>To Do List</h1>

<!-- todo목록을 입력할 HTML 폼 만들기 -->
<form action="todoList.jsp">
	ToDo리스트 추가하기: <input type="text" name="task">
	<input type="submit" value="Submit"><br>
</form>
<hr>


<!-- ToDo 목록 세션에 추가하기 -->
<%
	// 예전에 만들어 놓은 세션이 있다면 그 세션의 값을 반환받음
	List<String> todoList = (List<String>) session.getAttribute("mySession");
	
	if(todoList == null){
		// 세션의 반환값이 비어있다면 list를 새로 생성
		todoList = new ArrayList<String>();
		session.setAttribute("mySession", todoList);
	}
	
	// 폼에서 입력한 값을 request로 받아옴
	String task = request.getParameter("task");
	
	// ToDo리스트 추가하기에서 아무값도 입력하지 않았을 때를 예외처리
	boolean isNotEmpty = (task != null) && (task.trim().length() > 0);
	// ToDo리스트에 똑같은 값이 들어가는 것을 방지
	boolean isNotDuplicate = (task != null) && (!todoList.contains(task.trim()));
	if (isNotEmpty && isNotDuplicate) {
		todoList.add(task.trim());
	}
%>

<!-- 세션으로부터 정보 가져와서 사용자에게 보여주기 -->
<h2>ToDo 목록</h2>
<ol>
<%
	for(String str: todoList) {
		out.println("<li>" + str + "</li>");
	}
%>
</ol>
</body>

</html>

 

 

 

4. 실행 및 결과 ( todoList.jsp 실행 )

아무런 값도 없을 때
추가한 모습

 

브라우저 창을 닫고 서버를 다시 실행시켜도 세션트래킹이 정상적으로 되는지도 확인해보겠다.

브라우저를 닫고 다시 열어도 닫기 전과 똑같은 창이 뜬다.

브라우저 창을 닫고 다시 실행했지만, tomcat 서버에서 세션을 기억하고 있기때문에 값이 유지되어있다!!

지금까지는 구글 Chrome으로 실행했었는데

만약 다른 브라우저인 internet explorer로 연다면 똑같은 세션을 제공받을까?

브라우저에서는 세션 쿠키를 관리하는 기능이 있지만, 각 회사별 브라우저마다 따로 쿠키를 관리하기때문에

다른 세션을 제공받게 된다!!

'JAVA/JSP & Servlet' 카테고리의 다른 글
  • JSTL 사용하는법 [JSP 기초 ]
  • 쿠키 (Cookies) - 개념 및 활용 [JSP 기초]
  • HTML form 사용하기 [JSP 기초]
  • jsp:include 사용하기 (파일 활용) [JSP 기초]
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    jsp
    웹개발
    알고리즘
    GitHub
    스프링
    MySQL
    Spring
    자바스크립트
    운영체제
    스프링부트
    Python
    자바
    Git
    오류해결
    파이썬
    부스트캠프 멤버십
    java
    부스트캠프 7기
    os
    부스트캠프
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
세션 트래킹 (Session Tracking) [JSP 기초]
상단으로

티스토리툴바