본문 바로가기
Java/Servlet & JSP

JSP) 웹 페이지 로그아웃 기능 구현하기

by 박채니 2022. 6. 21.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


전체적인 디렉토리 구조 및 클래스 구조는 아래 포스팅 참고!
https://chanychu.tistory.com/308

 

JSP) 웹 페이지 로그인 기능 구현하기

안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 전체적인 디렉토리 구조는 아래 포스팅 참고! https://chanychu.tistory.com/307?categ

chanychu.tistory.com


웹 페이지의 로그아웃 기능 구현하기

 

header.jsp

<!-- 로그인폼 끝-->
<% } else { %>
    <table id="login">
        <tr>
            <td>[<%=loginMember.getMemberName() %>]님, 안녕하세요!</td>
        </tr>
        <tr>
            <td>
                <input type="button" value="내정보보기" />
                <input type="button" value="로그아웃" onclick="location.href='<%= request.getContextPath() %>/member/logout';"/>
            </td>
        </tr>
    </table>
<% } %>

 

Controller

MemberLogoutServlet

@WebServlet("/member/logout")
public class MemberLogoutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 1. 업무로직 : 세션 객체를 가져와서 무효화 처리
		HttpSession session = request.getSession(false); // 세션객체가 존재하지 않으면 null 반환
		if(session != null) {
			session.invalidate();	// 서버에 존재하는 서버 객체가 반환(폐기)됨
		}
		
		// 2. 리다이렉트
		response.sendRedirect(request.getContextPath() + "/");
	}
}

getSession의 매개인자 boolean 값에 false를 주어 만일 세션 객체가 존재하지 않는다면 null을 반환하도록 하였습니다.

기본 값은 true 이며, true는 세션객체가 존재하면 해당 세션객체를 반환 / 존재하지 않는다면 새로 생성하여 반환합니다.

session객체가 null이 아니라면 (존재한다면) , invalidate() 메소드를 이용하여 session을 제거해주었습니다.

 

로그아웃 처리 및 리다이렉트 처리가 정상적으로 되는 것을 확인할 수 있습니다.