JSP - session (2022-09-24)

2022. 9. 24. 15:573층 1구역 - 개발의 장/JSP

1. 서론

 

session 명령어에 대해 좀 더 알아보자.

 

2. 본론

혹시 사이트로그인 혹은 게임 내부에서 아무 입력 없이 오래 있어본 적 있는가?

아무 입력없이 장기간 있으면 자동적으로 로그아웃 되고 이런 alert창이 뜬다.

 

 

이 얘기를 왜 하는가?

그 세션이 지금 이야기 해볼 session이다. 

 

이전 게시물에서 그런 이야기를 했었다.

'session'은 은행업무를 보고자 할 때 뽑는 번호표 이다.

 

기억이 안 난다면...

2022.09.24 - [3층 - 개발의 장/JSP] - JSP - pageContext, request, session, application forwaed(2022-09-24)

 

JSP - pageContext, request, session, application forwaed(2022-09-24)

1. 서론 pageContext, request, session, application forward의 법칙에 대해 알아보도록 하자. 2. 본론 일단 들어가기 전에 pageContext, request, session, application 이 4가지 객체는 뒤에 .setAttribute(Str..

sukw9512.tistory.com

보고 오시면 '아....그랬네' 라고 할 것이다.

 

어쨋든 이전 글 내용을 조금 빌리자면

session은 클라이언트가 웹페이지에 들어갔을 경우, 그 클라이언트가 그 페이지에 처음 들어왔다고 인식.

서버에서 session을 하나 부여한다. 

 

그리고 클라이언트가 웹페이지를 나갈 경우 그 즉시 session은 삭제된다.

그리고 다시 접속할 경우 session은 처음 들어왔다고 인식 다시 서버에서 새로운 session을 하나 부여해 준다.

이것을 웹사이트에 적용히여 사용자의 동작이 없을 경우 자동으로 로그아웃되게 하고, 세션이 만료되었다 라는 alert

창을 띄우게 된 것이다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex1</title>
</head>
<body>
<%
	session.setAttribute("id", "admin");
	session.setAttribute("likes", new String[]{"집에 있기", "잠을 많이 자기"});
	
	String id = (String)session.getAttribute("id"); //미스매치가 일어나게 되는데 이때 형변환을 해줘야한다.
	String[] likes = (String[])session.getAttribute("likes");
	
	session.setMaxInactiveInterval(5);
	//session.setMaxInactiveInterval의 기본값은 30(1800초)분, 입력은 '초'단위로 입력
	//로그인 후 60초간 아무 반응이 없으면 session 삭제
	
	//매개변수에 넣어준 속성 삭제(ex. id = admin)
	session.removeAttribute("id");
	
	//세션 모두(하나의 클라이언트에 담아둔 모든 속성값) 삭제
	session.invalidate();
%>
</body>
</html>

 

3. 결론

 

백엔드 배우러 와서 프론트와 서버관리를 동시에 경험해보는 거 같다.

개발자 라는 직업이 협업을 중시하는 직종이다 보니 깊게는 아니더라도 

부분적으로 알고 가면 좀 더 이야기 하는게 수월하지 않을까...

 

근데 어려운 건 부정할 수 없다..