저번에는 로그인을 하였으니 이번에는 로그아웃을 한번 구현해보자. 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..

복사했습니다!