저번에는 로그인을 하였으니 이번에는 로그아웃을 한번 구현해보자. aJax를 이용하여 구현할 것이다.
indexView.jsp
sessSeq: <c:out value="${sessSeq}"/><br>
sessName: <c:out value="${sessName}"/><br>
sessId: <c:out value="${sessId}"/><br>
<c:if test="${not empty sessSeq}">
<button type="button" class="btn btn-danger btn-sm" name="" id="btnLogout"><i class="fa-solid fa-power-off"></i></button>
</c:if>
위에 부분은 값을 받아오고, 버튼에대한 코드이다.
<script type="text/javascript">
$("#btnLogout").on("click", function() {
$.ajax({
async: true
,cache: false
,type: "post"
,url: "/member/logoutProc"
,success: function(response) {
if(response.rt == "success") {
location.href = "/member/loginForm";
} else {
alert("회원없음");
}
}
,error : function(jqXHR, textStatus, errorThrown){
alert("ajaxUpdate " + jqXHR.textStatus + " : " + jqXHR.errorThrown);
}
});
});
</script>
여기서 주의해야할점은 버튼에 맞는 id 값을 꼭 새겨줘야되고
ajax 에구동시키는 한줄짜리 구동코드가 필요하다.
MemberController.java
@ResponseBody
@RequestMapping(value = "/member/loginProc")
public Map<String, Object> loginProc(Member dto, HttpSession httpSession) throws Exception {
Map<String, Object> returnMap = new HashMap<String, Object>();
Member rtMember = service.selectOneLogin(dto);
if(rtMember != null) {
Member rtMember2 = service.selectOneLogin(dto);
if(rtMember2 != null) {
httpSession.setAttribute("sessSeq", rtMember2.getIfmmSeq());
httpSession.setAttribute("sessId", rtMember2.getIfmmId());
httpSession.setAttribute("sessName", rtMember2.getIfmmName());
}
returnMap.put("rt", "success");
} else {
returnMap.put("rt", "fail");
}
return returnMap;
}
@ResponseBody
@RequestMapping(value = "/member/logoutProc")
public Map<String, Object> logoutProc(HttpSession httpSession) throws Exception {
Map<String, Object> returnMap = new HashMap<String, Object>();
httpSession.invalidate();
returnMap.put("rt", "success");
return returnMap;
}
위에꺼는 로그인 하는데에 필요한 코드정보이다.
결과값
sessid 아래에잇는 로그아웃 버튼을 누르면 밖으로 나가지는 것을 확인 할 수 있다.
To be continue..
'Project > Today's house' 카테고리의 다른 글
[오늘의집 ] Jquery 달력을 이용한 날짜 검색 구현 (0) | 2022.04.02 |
---|---|
[오늘의집 ] 페이징 POST방식으로 구현 (0) | 2022.04.01 |
[오늘의집 ] 멤버리스트 페이징 구현 (0) | 2022.03.24 |
[오늘의집 ] 멤버리스트 데이터 검색 구현 (0) | 2022.03.23 |
[오늘의집 ] Github 생성 및 세팅 (0) | 2022.03.14 |