🧩 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");
}
%>