학원/JSP

11/23 49-5 [JSP] Session(로그인/아웃)

도원결의 2022. 11. 23. 21:48

이거 파일이 모듈화를 해버린 파일이 남아있어서....

session의 주요 내용만 정리하자

어차피 메커니즘은 쿠키와 거의 동일하다!

세션도 저장위치만 다를 뿐 쿠키굽는거랑 다를게 없음

 

1.로그인 화면 !

    <span class="font-weight-bold text-danger"><%=request.getAttribute("NOT-LOGIN")==null?"":request.getAttribute("NOT-LOGIN") %></span>
	<form class="form-inline" action="LoginProcess.jsp" method="POST">
		<label>아이디</label>
		<input type="text" name="id" class="form-control mx-2" value="<%=request.getParameter("id")==null?"":request.getParameter("id") %>" />
		<label>비밀번호</label>
		<input type="password" name="pwd" class="form-control mx-2" value="<%=request.getParameter("pwd")==null?"":request.getParameter("pwd") %>" />
		<input type="submit" class="btn btn-danger mx-2" value="로그인" />
	</form>

틀은 모듈화로 구현!!

2. 로그인 로직 처리하는 페이지 - 이번엔 세션으로 이용해서 코드작성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- LoginProcess.jsp -->
<%
	//입력값 받기 => request객체 썼으니 포워드이동쓰겠지
	String id = request.getParameter("id");
	String pwd = request.getParameter("pwd");
	//아이디 가정
	if("KIM".equals(id.trim()) && "1234".equals(pwd.trim())){
		//1.로그인 -세션이용
		session.setAttribute("USER-ID",id);
		//2.마이페이지로
		response.sendRedirect("MyPage.jsp");		
	}
	else{ // 리퀘스트 영역 필요 
		request.setAttribute("NOT-LOGIN","아이디/비번 불일치");  // 키값은 Login에서 가져왕
		 //로그인 포워드로 이동 ! 입력값들 request로 받았잖아! 그대로 전달 해줘야지! 
		request.getRequestDispatcher("Login.jsp").forward(request,response);				
	}
%>

 

 

3. 로그인 성공 시 Mypage로 ! 

위에 상단메뉴를 모듈화로 빼서

아 그거 중요한건데.. 그 코드만 가져와보면

<% if(session.getAttribute("USER-ID")== null){ %>
<a class="nav-link active" href="<%=request.getContextPath()%>/session06/Login.jsp">로그인</a>
<%} else{ %>
<a class="nav-link active" href="<%=request.getContextPath()%>/session06/Login.jsp">로그아웃</a>
<%} %>
</li>

로그인 했을 때는 로그아웃 버튼만 보이고 

로그아웃 상태일 때는 로그인 버튼만 보이게 처리 !

  <div class="container" style="margin-top:50px;"> 
        <div class="jumbotron bg-warning">
            <h1>마이페이지<small><%=session.getAttribute("USER-ID") %></small></h1>
        </div>
      	<a class="btn btn-info" href="Logout.jsp">로그아웃</a>
    </div>

 

 

 

4. 로그아웃 하기 !! 세션지우기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- Logout.jsp -->
<%
	//로그아웃처리 -
	session.invalidate();
	//로그아웃 후
	response.sendRedirect("Login.jsp");
%>

처음화면이랑 똑같다 !