-
Servlet-JSP MVC06 (2) - 로그아웃 처리와 여러설정Web/Servlet-JSP 2023. 6. 24. 09:56
- session을 이용한 로그아웃 처리를 해보자
- 또한 로그인 시에만 memberList page에서 자신의 정보만 삭제할 수 있고 타인의 정보는 삭제할 수 없도록 변경해보자.
1. 로그인 시 로그인 창 안뜨고, 유저명과 로그아웃 버튼 나오도록 변경하기
<c:if test="${sessionScope.userId == null || sessionScope.userId ==''}"> //로그인 화면 </c:if> <c:if test="${sessionScope.userId !=null && sessionScope.userId !=''}"> ${sessionScope.userName}님 반갑습니다. <button type="button" class="btn btn-default" onclick="logout()">로그아웃</button> </c:if>
로그인 시에 session에 userId를 검사하여 다음과 같이 변경한 것이다.
> 로그인시 로그인창은 안뜨고, 로그아웃버튼과 유저명이 화면에 나타남
> 로그인 x시 로그인창이 뜸
2. 삭제버튼, 회원가입버튼, 회원가입 시 등록버튼
-리스트 삭제버튼
<c:if test="${sessionScope.userId == vo.id }"> <td><input type="button" value="삭제" class="btn btn-warning" onclick="deleteFn(${vo.num})"></td> </c:if> <c:if test="${sessionScope.userId != vo.id}"> <td><input type="button" value="삭제" class="btn btn-warning" onclick="deleteFn(${vo.num})"disabled ="disabled"></td> </c:if>
adisbled속성을 이용하여, 세션에 등록된 userId와 list Page에 등록된 id를 검사하여 로그인아이디와 list에 id가 동일 할 경우에만 삭제할 수 있도록 변경하였다.
- 회원가입 등록버튼
<c:if test="${sessionScope.userId==null || sessionScope.userId==''}"> <input type="button" value="등록" class='btn btn-primary' onclick="add()"/> </c:if> <c:if test="${sessionScope.userId!=null && sessionScope.userId!=''}"> <input type="button" value="등록" class='btn btn-primary' onclick="add()" disabled="disabled"/> </c:if>
3. 로그아웃처리
3.1 function logout() 추가
<button type="button" class="btn btn-dafault" onclick="logout()">로그아웃</button>
fucntion logout(){ location.href="<c:url value="/memberlogout.do"/>" }
3.2 memberlogout.do 처리할 컨트롤러 생성
public string requestHandler(//..)throws//..{ String ctx = request.getContextPath(); request.getSession().invalidate(); return "redirect:"+ctx+"/memberList.do"; }
세션을 종료시키는 방법은 3가지가 있다.
> 세션을 강제로 종료 (.invalidate());
> 브라우저 종료(session id가 브라우저 쿠키로 저장되므로, 브라우저 종료시 session이 종료된다)
> 세션 만료시간까지 기다리기(기본 30분)
*톰캣 web.xml파일에서 세션 만료시간을 조절할 수 있다.
회원로그아웃은 위와 같이 간단하게 처리할 수 있다.
리스트에서 멤버를 삭제할 때 로그아웃처리가 자동으로 발생하도록 변경해두자
// 회원 삭제 pojo부분 (memberDelete.do) ..... //회원 삭제 완료시 if(cnt>0) { //세션 만료시키는 코드 추가 request.getSession().invalidate(); nextPage="redirect:"+ctx+"/memberList.do"; }else { throw new ServletException("not delete"); }
참고자료:
나프2탄(인프런) 박매일
https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2
'Web > Servlet-JSP' 카테고리의 다른 글
Servlet-JSP MVC07 (1) - Ajax를 활용한 id 중복확인 (0) 2023.06.25 Servlet-JSP MVC06 (3) - 기타 설정 (0) 2023.06.24 Servlet-JSP MVC06 (1) - Session을 이용한 로그인 처리 (0) 2023.06.24 Servlet-JSP MVC04 (2) - handlerMapping and viewResolver (0) 2023.06.16 Servlet-JSP MVC04(1) - FrontController and POJO (0) 2023.06.16