SMALL
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
전체적인 디렉토리 구조 및 클래스 구조는 아래 포스팅 참고!
https://chanychu.tistory.com/308
웹 페이지의 로그아웃 기능 구현하기
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을 제거해주었습니다.
로그아웃 처리 및 리다이렉트 처리가 정상적으로 되는 것을 확인할 수 있습니다.
LIST
'Java > Servlet & JSP' 카테고리의 다른 글
JSP) 데이터 저장 용도로 존재하는 객체, 서블릿 이벤트 리스너 (0) | 2022.06.22 |
---|---|
JSP) 기본적인 session과 cookie의 흐름, session의 유효기간 (0) | 2022.06.22 |
JSP) 웹 페이지 로그인 기능 구현하기 (0) | 2022.06.21 |
JSP) SQL과 함께 사용하기 (접속 테스트 및 파일 구조) (0) | 2022.06.20 |
JSP) JSP에 데이터 전달 (setAttribute, getAttribute) (0) | 2022.06.20 |