JSP + Servlet | 세션으로 로그인 구현

파과·2022년 7월 14일
0

JSP + Servlet

목록 보기
12/33

코드설명

  • 로그인폼에서 submit을 누르면, 폼 태그의 action에 적힌 주소 - testLogin 페이지로 넘어감.
  • 인증은 request객체의 getParameter를 이용해 입력받은 파라미터 값을 가져와 정해진 변수와 비교하는 방법을 사용. 값이 같을 경우 session.setAttribute로 loginUser의 값을 이름으로 주고 response.sendRedirect를 통해 메인페이지로 보낸다. 값이 다르면 sendRedirect로 로그인폼으로 돌려보낸다.
  • 메인페이지에서 loginUser의 값을 session.getAttribute로 가져와(없으면 로그인폼으로 돌려보낸다) 출력한다. 로그아웃 submit버튼 클릭시 action에 적힌 logout페이지로 넘어간다.
  • 로그아웃페이지에서는 session.invalidate로 세션을 무효화하고, 자바스크립트의 location.href를 통해 로그인폼으로 돌려보낸다.

전체코드

loginForm.jsp

<form method="post" action="260_testLogin.jsp">
	<label for="userid">아이디: </label>
	<input type="text" name="id" id="userid"><br>
	
	<label for="userpw">&nbsp;: </label>
	<input type="password" name="pw" id="userpw"><br>
	
	<input type="submit" value="로그인">
</form>

testLogin.jsp

<%
	String id = "pinksung";
	String pw = "1234";
	String name = "성윤정";
	
	if(id.equals(request.getParameter("id")) && pw.equals(request.getParameter("pw"))){
		session.setAttribute("loginUser", name);
		response.sendRedirect("260_main.jsp");
	}else {
		response.sendRedirect("260_loginForm.jsp");
	}
%>

main.jsp (마지막 괄호부분 안 적어주면 컴파일 오류 뜬다...)

<%
if(session.getAttribute("loginUser")==null){
	response.sendRedirect("260_loginForm.jsp");
}else{
%>	
	<%=session.getAttribute("loginUser") %>님 안녕하세요!<br>
	저희 홈페이지에 방문해 주셔서 감사합니다. <br>
	즐거운 시간 되세요....<br>
	<form method="post" action="260_logout.jsp">
		<input type="submit" value="로그아웃">
	</form>
<%
}
%>

logout.jsp

<body>
<%
	session.invalidate();
%>
<script>
	alert("로그아웃되었습니다.");
	location.href="260_loginForm.jsp";
</script>
</body>

0개의 댓글