백엔드/JSP

JSP Servlet 기초 (7) : 쿠키를 이용한 로그인

두개의 문 2023. 6. 13. 00:09

쿠키를 이용해 간단한 로그인을 구현해보자.

 

▷ login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 창</title>
</head>
<body>
	<form action="loginGo.jsp" method="post">
		아이디 : <input type="text" name="id" size="10" /><br />
		비밀번호 : <input type="password" name="pw" size="10" /><br />
		<input type="submit" value="로그인" />
	</form>
</body>
</html>

 

 

▷ loginGo.jsp : login.jsp에서 입력한 아이디와 비밀번호가 DB에 저장된 정보와 일치하는지 확인하는 용도 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	String id, pw;
%>    
<%
	id = request.getParameter("id");
	pw = request.getParameter("pw");
	
	// id = "abced", pw = "12345"를 DB에 저장된 정보라고 가정하자 
	if(id.equals("abcde") && pw.equals("12345")){
		// 로그인 성공 시, 사용자 화면으로 이동 
		// ① 로그인 성공으로 쿠키 생성
		Cookie cookie = new Cookie("id", id);
		// ② 쿠키 유지시간 설정
		cookie.setMaxAge(60);
		// ③ response객체에 쿠키 저장
		response.addCookie(cookie);
		// ④ 사용자 화면으로 이동
		response.sendRedirect("login_home.jsp");
	} else {
		// 로그인 실패 시, 다시 로그인 화면으로 이동 
		response.sendRedirect("login.jsp");
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 처리</title>
</head>
<body>

</body>
</html>

 

 

▷ login_home.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
	// 로그인 성공한 사용자만 들어올 수 있도록 보안기능 구현 필요
	// 지금은 간단하게 연습하기 위해 생략, 추후 보강하자
	
	// ① 웹 브라우저의 쿠키 정보 모두 가져오기
	Cookie[] cookies = request.getCookies();
	
	// ② 로그인 성공 시, 로그인 정보 화면출력시키기 
	for(int i = 0; i < cookies.length; i++){
		String id = cookies[i].getValue();
		if(id.equals("abcde")){
			out.println(id + "님 안녕하세요." + "<br />");
		}
	}
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="logout.jsp">로그아웃</a>
</body>
</html>

 

 

 

▷ logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	Cookie[] cookies = request.getCookies();

	// 쿠키 == null : 쿠키 안에 내용이 없다
	// 쿠키 안에 내용이 있다면, 유지시간을 0으로 처리해 로그아웃시키자		
	if( cookies != null ) {
		// 전체 쿠키 출력해서 id가 "abcde"인 쿠키 찾기 
		for(int i = 0; i < cookies.length; i++){
			if(cookies[i].getValue().equals("abcde")){
				cookies[i].setMaxAge(0);
				response.addCookie(cookies[i]);
			}
		}
	}
	// 로그아웃된 상태이므로 시작페이지(login.jsp)로 이동
	response.sendRedirect("login.jsp");
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

 

▶ 직접 서버에 login.jsp를 요청해 로그인해보자.

'백엔드 > JSP' 카테고리의 다른 글

웹 프로그래밍의 시작 (1)  (0) 2023.06.14
JSP Servlet 기초 (8) : Session  (0) 2023.06.13
JSP Servlet 기초 (6) : Cookie  (0) 2023.06.12
JSP Servlet 기초 (5) : response 객체  (0) 2023.06.12
JSP Servlet 기초 (4) : request + tag  (0) 2023.06.12