JSP_basic. 로그인 페이지

dwanGim·2022년 3월 30일
0

JSP_basic

목록 보기
3/15

JSP session을 이용한 아주 기초적인 로그인 페이지를 만들어 보겠습니다.

먼저 로그인 form이 필요합니다.

<body>
	<form action="http://localhost:8181/JSPbasic/jspobject/session/session_login_check.jsp" method="post">
		아이디 : <input type="text" name="id" placeholder="아이디"><br/>
		비밀번호 : <input type="password" name="pw" placeholder="패스워드"><br/>
		<input type="submit" value="확인">
	</form>

</body>

로컬파일의 session_login_form.jsp에 다음과 같이 생성했습니다.

이후 session_login_check.jsp 파일에

확인 버튼을 눌렀을 시 실행될 로직을 작성해보겠습니다.

이 기초적인 로그인 메서드는 DB를 통한 로그인이 아니기 때문에

abc1234 라는 ID와

1111이라는 패스워드를 대조하는 형식입니다.

<%
	request.setCharacterEncoding("utf-8");
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	
	String userId = id;
	
	if (id.equals("abc1234")) {
		if(pw.equals("1111")) {
			session.setAttribute("s_id", userId);
			response.sendRedirect("http://localhost:8181/JSPbasic/jspobject/session/session_login_ok.jsp");
		} else {
			System.out.println("비밀번호가 틀렸습니다. 다시 입력해주세요.");
			response.sendRedirect("http://localhost:8181/JSPbasic/jspobject/session/session_pw_fail.jsp");
		}
	} else {
		System.out.println("아이디가 없습니다. 다시 입력해주세요.");
		response.sendRedirect("http://localhost:8181/JSPbasic/jspobject/session/session_id_fail.jsp");
	}
%>

if else문을 이용해 id와 pw가 일치하면

세션을 발급하고 session_login_ok.jsp로 리다이렉트 시킵니다.

<%-- session_loginok.jsp파일입니다. --%>
<%
	// 세션 검사를 통해 세션값을 변수에 저장합니다.
	request.setCharacterEncoding("utf-8");
	
	String userId = (String)session.getAttribute("s_id");
	

	System.out.println(userId);
	// 비로그인 사용자가(s_id로 발급된 세션이 없는 사용자가) 해당 페이지 접근 시 userId == null 입니다.
	// 로그인 안 한 사용자가 접근할 경우 강제로 로그인창으로 보내는 로직을 아래에 작성해보겠습니다.
	
	if(userId == null) {
		response.sendRedirect("session_login_form.jsp");
	}
	
	
%>

<body>
	<%= userId %>님 로그인을 환영합니다.
	<h2>어플리케이션에 들어있던 값 : <%= sapp %></h2>
	<a href="session_logout.jsp">로그아웃하기</a>

</body>

로그아웃을 눌렀을 떄는 logout.jsp로

이동시킵니다. 로그아웃은 어떻게 작동해야할까요.

세션 삭제를 이용한 로그아웃

session.invalidate() 가 실행되면

해당 서버에서 발급한 세션을 모두 파기하고

로그인 여부는 해당 서버에서 발급한 세션 유무로 판단하므로

세션을 삭제하는 행위 자체로 로그아웃이라고 볼 수 있습니다.

발급한 세션이 삭제되면 서버는 로그인으로 인식하지 않습니다.

<%
	// logout.jsp 파일입니다.
    
    
	// 1. 세션을 삭제해주세요.
		session.invalidate();
	// 2. 로그인창으로 리다이렉트 시켜주세요.
	response.sendRedirect("session_login_form.jsp");
	
	
	
%>

이렇게 간단한 로그인 로그아웃이 정상 작동을 하게 되었습니다.

일단은 여기까지 입니다.

profile
배울 게 참 많네요.

0개의 댓글