로그인(아이디 중복) JSP(3)

최현석·2022년 10월 22일
0

JSP

목록 보기
7/13

🧩 UerDAO.java

// 아이디 중복 체크
	public boolean checkId( String userid ) {
		boolean result = false;
		
		// 0 or 1, 1 -> 중복된 아이디, 0 -> 가입이 가능한 아이디
		String sql = "SELECT count(*) FROM TBL_USER tu  WHERE USERID = ?";
		
		try {
			conn = DBConnection.getConnection();
			
//			conn = ((DataSource)new InitialContext(null).lookup("java:comp/env/jdbc/oracle")).getConnection();
			pstm = conn.prepareStatement(sql);
			
			pstm.setString(1, userid);
			rs = pstm.executeQuery();
			
			if( rs.next() ) {
				if( rs.getInt(1) == 1 ) {
					// 이미 가입한 아이디 -> true
					result = true;
				}
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
}

🧩join_viw.jsp

<p>
			<label>아이디<input type="text" name="userid"></label>
			<input type="button" value="중복확인" onclick="checkId(joinForm.userid.value);">
		</p>

🧩user.js

function checkId(userid){
	
	if( userid == "" ){
		alert("아이디를 입력해주세요.");
	} 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 ){
				//alert( xhr.responseText );
				
				if( xhr.responseText.trim() == "ok" ){
					document.getElementById("text").innerHTML = "사용할 수 있는 아이디입니다.";
				} else {
					document.getElementById("text").innerHTML = "중복된 아이디입니다.";
				}
				
			}
		}	
	}
}
 

🧩idcheck.jsp

<%@page import="com.koreait.web.dao.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String userid = request.getParameter("userid");
	UserDAO udao = new UserDAO();
	
	//	user.js -> 이곳으로 요청을주고 -> dao -> DB-> dao -> t/f -> 이곳 -> user.js
	if( !udao.checkId(userid) ){
		// 회원가입이 가능한 경우
		out.print("ok");
	} else {
		// 회원가입이 불가능한 경우
		out.print("not-ok");
	}
	

%>

0개의 댓글