[학교 공부][JSP]- 세션 (기본개념+프젝 활용 예시)

Mini_me·2021년 12월 1일
0

공부 [JSP] 

목록 보기
7/11
post-thumbnail

세션? 그게 뭐야?

정의

클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
사용자 인증을 통해 특정 페이지를 사용할 수 있도록 권한 상태를 유지하는 것이다.
웹 브라우저마다 하나씩 존재 -> 웹 서버의 서비스를 제공받는 사용자를 구분하는 단위가 된다.
웹 서버에서만 접근이 가능 -> 보안 유지 유리 / 데이터 접근 시 한계 없음

세션 생성

setAttibute()메소드 사용
만약 동일한 세션의 속성 이름으로 세션 생성 ->
마지막에 설정한 것이 세션 속성 값이 된다.

if(userID.equals(rId)&&userPassword.equals(rPasswd)){
						session.setAttribute("userID", userID);
							out.println("<script> alert('로그인 성공') </script>");  // 일치하면 로그인성공
							out.println("<script> location.href='welcome.jsp' </script>"); 
							
						}

첫번째 매개변수 "userID"는 세션으로 사용할 세션속성 이름으로,
세션에 저장된 userID 값을 찾아온다.
두번째 매개변수 userID는 세션의 속성 값이다.
로그인 창에서 입력받은 userID와 데이터베이스에 저장되어 있는 userID 및 userPassword가 같다면, 세션을 생성하여 로그인 성공했다는 알림을 띄운다.

세션 정보

세션에 저장된 하나의 세션 속성 이름에 대한 속성
값을 얻어올려면 getAttribute()메소드 사용
주의 ) getAttribute() 메소드는 반환 유형이 Object 형이므로 int,string 등등 불가
반드시 형 변환해서 사용해야 한다.

if(session.getAttribute("userID")!=null){
	userID=(String)session.getAttribute("userID");
}
if(userID!=null){
	out.println("<script> location.href='welcome.jsp' </script>");  // 일치하면 로그인성공
		
}

첫번째 매개변수 userID는 세션에 저장된 세션 속성이름이다.
설정된 세션 속성 값을 가져와 userID에 저장
userID가 null 값이 아니라면 세션이 저장되어있는 것이므로 로그인 성공이 되도록 프로젝트에서 구현 하였다.

또한 이 함수를 이용하여 로그인 시, 홈페이지의 상단 바가 바뀌도록 구현하였다.

  <%
		String userID = null;
		if(session.getAttribute("userID") != null){
			userID = (String)session.getAttribute("userID");
		}
	%>

단일 세션 삭제하기

세션에 저장된 하나의 세션 속성이름 삭제하려면 removeAttribute() 메소드 사용
프로젝트에서는 회원이 logout 버튼 눌렀을 시 실행되도록 구현하였다.

다중 세션 삭제하기

세션에 저장된 모든 세션 속성이름 삭제하려면
invaildate() 메소드 사용

세션 유효 시간

세션을 유지하기 위한 세션의 일정 시간이다.
웹 브라우저에 마지막 접근한 시간부터 일정 시간 이내에 다시 웹 브라우저에 접근하지 않으면 자동으로 세션 종료
setMaxInactiveInterval()함수 사용

0개의 댓글

관련 채용 정보