18.로그아웃 구현하기
로그아웃 구현하기
순서
1.controller 처리
2.view 처리
1.controller처리
- MemberController.java
// 메인페이지 로그아웃
@RequestMapping(value = "/client-logout", method = RequestMethod.GET)
public String loginmainGET(HttpServletRequest request) throws Exception {
HttpSession session = request.getSession();
// invalidate(): 세션 전체를 무효화하는 메서드 이다
session.invalidate();
System.out.println("logout 메서드 진입입니다");
return "redirect:/client-main";
}
// 관리자 페이지 로그아웃
@RequestMapping(value = "/admin-logout", method = RequestMethod.GET)
public String loginadminGET(HttpServletRequest request) throws Exception {
System.out.println("어드민logout 메서드 진입입니다");
HttpSession session = request.getSession();
// invalidate(): 세션 전체를 무효화하는 메서드 session.invalidate();
session.invalidate();
return "redirect:/client-main";
}
메인 페이지와 관리자 페이지에 로그아웃을 해야하기 떄문에 session을 무효화 하는 메서드를 선언해준다.
관리자는 로그아웃시 사용자 메인 창으로 리다이렉트로 넘어가게된다.
session.invalidate()
세션 객체가 메모리 상에서 사라지는 것이 아닌 무효화를 시킨다. 참조 당 할 수 없으며 메서드 호출 또한 불가능하다.
2.view처리
- client-header.jsp
<div class="user-menu">
<div class="dropdown-user">
<ul class="user-menu-list">
<!-- 로그인 하지 않는 상태 -->
<c:if test="${member == null}">
<li><a href="client-login">로그인</a></li>
<li><a href="client-register">회원가입</a></li>
<li><a href="client-login">마이페이지</a></li>
</c:if>
<!-- 로그인 상태 -->
<!-- 관리자 로그인 상태 -->
<c:if test="${member != null}">
<c:if test="${member.adminchk eq 1}">
<li><a href="client-logout">로그아웃</a></li>
<li><a href="admin-main">관리자페이지</a></li>
</c:if>
<c:if test="${member.adminchk ne 1}">
<li><a href="client-logout">로그아웃</a></li>
<li><a href="client-mypage">마이페이지(${member.id}님)</a></li>
</c:if>
</c:if>
</ul>
</div>
</div>
사용자가 로그인을 했을 경우 로그아웃을 해야하기 때문에 로그아웃이 url이 잘 작동할 수 있게 설정한다
사용자가 로그아웃을 클릭시 controller에서 로그아웃 메소드를 호출하여 로그아웃이 작동된다.
- admin-header.jsp
<li class="navbar-cart mt-2">
<div class="user">
<a href="javascript:void(0)" class="main-btn">
<!-- <img class="w-75" src="${ctx}/resources/images/hero/발바닥.png" alt="발바닥" a>-->
<!-- User-menu -->
<div class="user-menu">
<div class="dropdown-user">
<ul class="user-menu-list">
<li><a href="admin-logout" >로그아웃</a></li>
</ul>
</div>
</div>
</div>
</li>
관리자가 로그인을 했을 경우 로그아웃을 해야하기 때문에 관리자로그아웃이 url이 잘 작동할 수 있게 설정한다
관리자가 로그아웃을 클릭시 controller에서 로그아웃 메소드를 호출하여 로그아웃이 작동된다.
댓글남기기