쿠키를 이용해 간단한 로그인을 구현해보자.
▷ 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 |