JSP 로그아웃

노건우·2023년 8월 28일
0

jsp

목록 보기
4/7
post-thumbnail

DAO 작성

public boolean check_id(String userid) {
		String sql = "SELECT count(*) FROM TBL_MEMBER WHERE USEID = ?";
		boolean result = false;
		try {
			conn=DBconnection.getConnection();
			pstm =conn.prepareStatement(sql);
			pstm.setString(1, userid);
			
			rs = pstm.executeQuery();
			if(rs.next()) {
				if(rs.getInt(1)==1) {
					result = true;
				}
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	
}

DB를 연결하고 PreparedStatement를 실행하여 결과 집합(ResultSet)을 얻는다.
if(rs.next())의 경우는 rs.getInt(1)==1인 경우에 true, 그렇지 않은 경우 false를 반환하게 한다.

jsp작성

<%@page import="com.codingbox.web.dto.TblMemberDTO"%>
<%@page import="com.codingbox.web.dao.TblMemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
		
		String userid = request.getParameter("userid");
		//
		//TblMemberDAO에서 DB조회 후(check_Id(userid)),checkId->boolean
		//해당 아이디로 가입이 가능하면 OUT.PRINT("OK")
		//그렇지 않다면 out.print("not-ok")
		TblMemberDAO mdao = new TblMemberDAO();
		mdao.check_id(userid);
		if(!mdao.check_id(userid)){
			//회원가입 가능한 상태
			out.print("ok");
		}else{
			//회원가입 불가능한 상태
			out.print("not ok");
		}
		
	
	
%>

userid로 값을 받아오고, mdao객체를 생성해준다. 회원가입이 가능하다면 ok,아니라면 not ok 출력

userjs 작성

 ///아이디 중복체크
	 function checkId(userid){
		 //alert(userid);
		if(userid == ""){
			alert("아이디를 입력해주세요");
			return false;
		}else{
			//ajax통신
			let xhr = new XMLHttpRequest();
	    xhr.open("GET",
	       "idcheck.jsp?userid="+userid,true);
	    xhr.send();
	    xhr.onreadystatechange = function(){
	       // 응답, 성공
	       if( xhr.readyState == XMLHttpRequest.DONE &&
	             xhr.status == 200){
	       		if(xhr.responseText.trim() == "ok"){
					   //ok
					   document.getElementById("text").innerHTML
					   ="사용할 수 있는 아이디 입니다."
				   }else{
					   //not ok
					    document.getElementById("text").innerHTML
					   ="사용할 수 없는 아이디 입니다."
				   }
	       }
	    }
			
			
		}
	 }

ajax통신을 이용한다. 그렇기 때문에 기존에 했던 코드와 달리 submit도 붙지 않은 것.
ajax이기에 비동기식으로 동작한다. 서버에서 받은 응답은 xhr.responseText에 저장되고, xhr.readyState == XMLHttpRequest.DONE &&
xhr.status == 200일 경우 사용할 수 있는 아이디, 그렇지 않은 경우 사용불가한 아이디이다.

logout_db

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- session에 있는 값을 비워
	loginpage로 이동 -> loginview.jsp
	 -->
		
		
	 <%
	  	//session.invalidate(); //세션에 있는 모든 값 삭제
	  	session.removeAttribute("session_id");//session에 정의된 특정 값만 삭제
	  	response.sendRedirect("loginview.jsp");
	 %>
</body>
</html>
profile
초보 개발자 이야기

0개의 댓글