전에는 로그인을 작업해보았다.
로그아웃은 간단하다.
기본적으로 로직은이렇다
만약 로그아웃을 누르게되면 서블릿에서 바로 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 {
}
}
로그아웃 실행전 화면
로그아웃 실행후 화면
로그아웃 된것을 확인할수있다.
다음은 회원가입을 할려고합니다 .
'프로그래밍 > JSP' 카테고리의 다른 글
JSP - 미니 프로젝트(5. 정보수정) (0) | 2021.08.23 |
---|---|
JSP - 미니 프로젝트(4. 회원가입) (1) | 2021.08.23 |
JSP - 미니 프로젝트(2. 로그인) (0) | 2021.08.23 |
JSP - 미니 프로젝트(1.메인페이지) (1) | 2021.08.23 |
JSP - 미니 프로젝트 INTRO (0) | 2021.08.23 |