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>");
}