개발자공부 (2021.11~현재)/JSP

JSP로 만드는 로그인 페이지(세션사용)

purplecloud 2022. 1. 13. 21:01

session을 사용하여 로그인 페이지를 만들어보자

 

세션(session)
- 서버에 사용자 정보를 저장
- 서버상에 존재하는 객체로 브라우저 단위당 1개씩 존재함
- 쿠키에 비하여 보안이 좋음
- 웹 브라우져를 닫기 전까지 클라이언트와 연결됨

세션 변수 만들기
session.setAttribute("변수명","값")
세션 값 읽어오기
session.getAttribute("변수명")
세션 값 삭제하기
session.invalidate();

 

세션과 쿠키가 다른점은 세션은 브라우저에 들어가자마자 생성되는 것으로 따로 생성할 필요 없이, 

attribute로 값을 전달하게 된다.

// 6_login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>     
    <%
     String userid=null;
    if(session.getAttribute("userid")!= null){ // 4. 세션 attribute중 userid 값이 존재하면, 그 값을 userid 변수에 저장한다.
     userid=(String)session.getAttribute("userid");
     }
     %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<p>로그인</p>

<%
if(userid== null){ // userid값이 null값이라면 로그인 페이지를 띄우고
%>
    
<form method="post" action="6_login_ok.jsp"> // 1. 아이디와 비밀번호 값을 전달한다.
<p>아이디: <input type="text" name="userid"></p>
<p>비밀번호: <input type="password" name="userpw"></p>
<p><input type="submit" value="로그인"></p>
</form>
<%
}else{ // userid값이 존재할 경우 로그아웃 페이지를 활성화
%>
<h3><%=userid %>님, 방문을 환영합니다.</h3>
<p><input type="button" value="로그아웃" onclick="location.href='6_logout.jsp'"></p>
<%
}
%>

</body>
</html>

 

 

// 6_login_ok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
String userid=request.getParameter("userid"); // 2. 아이디와 패스워드 값을 가져온다. 
String userpw=request.getParameter("userpw");
// admin, 1234
if(userid.equals("admin") && userpw.equals("1234")){
session.setAttribute("userid","apple"); // 3. 아이디와 비밀번호가 맞을 경우 attribute를 생성한다.

%>
<script>
alert('로그인되었습니다.')
location.href="3_login.jsp"
</script>
<%
}else{
%>
<script>
alert('아이디와 비밀번호를 확인해주세요')
history.back();
</script>
<%
}
%>

 

 

// 6_logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
session.invalidate(); // 5. 세션값 초기화
%>
<script>
alert('로그아웃되었습니다.')
location.href='6_login.jsp'
</script>