JSP 웹 프로젝트

JSP 웹 프로젝트 (4) 세션

s_hoonee 2023. 1. 3. 10:29
반응형

대학생을 위한 웹 페이지 제작

사용 언어 : java (jdk 12.0.2), JavaScript, css, html
사용 툴 : Eclipse
데이터베이스 : Mysql
서버 : Tomcat
테스트 브라우저 : Chrome, Edge
파일 : jsp

학교 프로젝트로 만든 대학생을 위한 학교 웹 페이지입니다. 

기능

1. 자유 게시판, 중고책, 분실물 게시판 등 운영 ( 이미지 첨부, 댓글 달기, 수정 등 가능 )

2. 학교 공지사항 게시

3. 기타 대외활동 포스터 게시

4. 학점 계산기, 자신만의 시간표, 건물 정보, 주차 구역 확인

5. 회원가입시 AES 암호화 + salt 값을 추가하여 비밀번호를 해쉬값으로 저장하여 암호화

6. 카카오 지도 API

 

시스템 구성도


세션

세션이란 웹 컨테이너에서 클라이언트의 정보를 서버에 보관하는 기능입니다.

1회성으로 연결이 종료되는 http 프로토콜의 단점을 보완해 클라이언트와 서버 간 접속을 유지시켜줍니다.

웹 서버는 웹 컨테이너의 상태를 유지하기 위한 정보를 저장하고,

저장한 정보는 브라우저를 닫을 때, 일정 시간이 지났을 때, 서버에서 세션을 삭제했을 때 비로소 삭제가 이루어집니다.

사용자 컴퓨터에 저장되는 쿠키와는 달리 세션은 서버에 저장되어 관리되기 때문에 비교적 보안이 좋습니다.

서버한테 세션값 주기

session.setAttribute(변수명, 값)

 

서버한테 세션 값 얻어오기

String  str_session = session.getAttribute(변수명)  // 리턴 값 String타입

 

사용 예

1. 로그인 성공 시 로그인 한 ID를 세션으로 자동 저장

2. 웹페이지 이동시 마다 저장된 세션을 불러와서 로그인 상태와 ID를 유지

 

세션 해제 (로그아웃)

ex) 로그아웃 버튼 클릭시 해당 메소드 호출로 로그아웃 및 세션값 해제

// 모든 세션 값 삭제 session.invalidate()
// 특정 세션 값 삭제 session.removeAttribute(변수명)

 

세션이 없다 ? -> 로그인이 안되어있거나 풀렸다. 

-> 모든 페이지에 해당 코드를 삽입하여 세션이 없을 시 로그인 페이지로 이동하게 로직을 구성

String userID = null;
	if (session.getAttribute("userID") != null) {  //세션 값을 가져옴 ( 등록이 안되있을 시 null반환 )
		userID = (String) session.getAttribute("userID"); // 세션이 등록되 있다면 값을 가져와서 저장
	}else{
		script.println("<script>");
		script.println("alert('로그인이 필요한 기능입니다.')");
		script.println("location.href = 'login.jsp' ");
		script.println("</script>");
		
	}