JSP - 미니 프로젝트(3. 로그아웃)

전에는 로그인을 작업해보았다.

로그아웃은 간단하다.

기본적으로 로직은이렇다

만약 로그아웃을 누르게되면 서블릿에서 바로 loginUser이라는 세션을 삭제하면된다.

세션삭제하는 메소드는 session.removeAttribute(name); 으로 사용한다.

 

 

header.jsp

에서는 로그아웃 버튼 주소 확인하면된다

로그아웃에 /logout 으로 요청하게 작성하였다.

<%@page import="member.model.vo.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	Member userLogin = (Member) request.getSession().getAttribute("userLogin");
	// System.out.println(userLogin);
%>    

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href="<%=request.getContextPath() %>/resources/css/menubar-style.css" rel="stylesheet">
<%if(session.getAttribute("msg") != null){ %>
<script>
	alert('<%= (String) session.getAttribute("msg") %>');
</script>
	
<%
 session.removeAttribute("msg");
} %>
</head>
<body>
	<div class="wrapper">
        <header id="header">
	        <!-- 로고 이미지를 클릭하면 첫 화면으로 -->
            <a href="<%= request.getContextPath() %>">
                <img class="logo" src="<%= request.getContextPath() %>/resources/images/logo.png" alt="JSP HOME">
            </a>
            <!-- 회원가입/로그인 -->
            
            <div class="btnArea">
           	<%if(userLogin == null) {%>
            	<a href="<%= request.getContextPath() %>/memberJoin">회원가입</a>
            	<a href="<%= request.getContextPath() %>/login">로그인</a>
            <%} else { %>
            	<a href="<%= request.getContextPath()%>/memberModify">정보수정</a>
            	<a href="<%= request.getContextPath()%>/logout">로그아웃</a>
            <%} %>
            </div>
        </header>
        <nav id="nav">
        	<ul>
        		<li><a href="<%= request.getContextPath() %>">HOME</a></li>
        		<li><a href="#">공지사항</a></li>
        		<li><a href="#">게시판</a></li>
        		<li><a href="#">사진게시판</a></li>
        	</ul>
        </nav>

   </div>

</body>
</html>

 

 

LogoutServlet.java

링크를 통해 요청받으면 doGet으로 인식하여 메소드를 호출한다.

요청을받으면 현재 사용자가 가지고있는 세션을 가져와

loginUser 의 세션을 삭제하라는 내용입니다.

 

로그아웃은 세셔만지워주면되는부분이어서 간단하게끝낼수있었다.

package member.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class LogoutServlet
 */
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		session.removeAttribute("userLogin");
		
		response.sendRedirect(request.getContextPath());
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

 

 

로그아웃 실행전 화면

로그아웃 실행후 화면

 

로그아웃 된것을 확인할수있다.

 

 

다음은 회원가입을 할려고합니다 .

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유