1 분 소요

로그아웃 구현하기

순서

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에서 로그아웃 메소드를 호출하여 로그아웃이 작동된다.

댓글남기기