에러 탈출 일지

[JSP] session객체를 이용한 로그인 페이지 만들기 본문

개발/JSP

[JSP] session객체를 이용한 로그인 페이지 만들기

뉴NEW 2022. 10. 23. 16:40

< session 내장 객체  >
- 요청에 대한 연결을 session이 만료되기 전까지 유지하는 역할

< session 내장 객체의 메소드 >
1. getId() 웹브라우저에서 생성된 세션 ID를 리턴
2. getCreationTime() 세선이 생성된 시간을 리턴
3. getLastAccessedTime() 세션의 요청이 시도된 마지막 접근 시간을 리턴
4. setMaxInactiveInterval() 세션의 유지 시간을 조단위로 설정 
5. getMaxInactiveInterval() 세션의 유지 시간을 리턴
6. inNew() 새로 생성된 세션일 때 true를 리턴
7. invalidate() 모든 세션을 무효화할 때 사용
8. setAtrribute(Key, value) key와 value의 세션을 지정할 때 사용
9. getAtrribute(Key) 세션의 key로 value 값을 얻을 때 사용
10. removeAtrribute(Key) Key를 통해 해당 session을 제거할 때 사용


파일 4개 생성

1. 로그인 페이지 - From.jsp

2. 로그인 처리 페이지 - Pro.jsp

3. 로그인 확인 페이지 - Main.jsp

4. 로그아웃 페이지 - Logout.jsp


1. 로그인 페이지 - From.jsp

<body>
	<h2>로그인 페이지</h2>
	<form action="sessionTest02Pro.jsp" method="post">
		아 이 디 : <input type="text" name="id"><br>
		비밀번호: <input type="password" name="pwd">
		<input type="submit" value="로그인">
	</form>
</body>

action 태그로 Pro.jsp 파일로 연결

 

 

2. 로그인 처리 페이지 - Pro.jsp

- DB 연결 

<body>
	<h2>로그인 처리 페이지</h2>
	<%
	request.setCharacterEncoding("utf-8");
	String id = request.getParameter("id");
	String pwd = request.getParameter("pwd");
	
	// DB에 저장된 dnId, dbPwd를 각각 aaaa1111, 1234
	String dbId = "aaaa1111";
	String dbPwd = "1234";
	
	// 폼에서 입력한 아이디와 비밀번호가 DB에 저장된 아이디와 비밀번호가 일치할 때 세션을 생성
	if(id.equals(dbId)){         // 아이디가 디비아이디와 일치한다면
		if(pwd.equals(dbPwd)){   // 비밀번호가 일치한다면
			// 아이디, 비밀번호 둘 다 일치한다면
			// 세션을 생성, main(확인) 페이지로 이동
			session.setAttribute("id",id);
			response.sendRedirect("sessionTest02Main.jsp");
			
		} else { // 비밀번호가 일치하지 않을 때
        	// history.back() 이전 페이지로 돌아가기
		out.print("<script>alert('비밀번호가 존재하지 않습니다.');history.back();</script>");
		}
	} else { // 아이디가 일치하지 않을 때
	out.print("<script>alert('아이디가 존재하지 않습니다.');history.back();</script>");
	}
	%>
</body>

 

3. 로그인 확인 페이지 - Main.jsp

<body>
   <h2>로그인 확인 페이지(로그인 성공)</h2>
   <%
   String id = (String)session.getAttribute("id");
   
   // 세션이 널일 때
   if(id == null) {
      response.sendRedirect("sessionTest02Form.jsp");
   }
   
   // 세션이 널이 아닐 때
   
   %>
   <p><b><%=id %></b>님이 로그인하였습니다.</p>
   <p><a href="sessionTest02Logout.jsp">로그아웃</a></p>
</body>

 

4. 로그아웃 페이지 - Logout.jsp

<body>
	<h2>로그아웃 페이지</h2>
	<%
	// 세션을 삭제
	session.removeAttribute("id"); // 지정한 세션 1개 삭제
	// session.invalidate(); 모든 세션 삭제
	
	// 폼페이지로 이동
   	response.sendRedirect("sessionTest02Form.jsp");
	%>
</body>