본문 바로가기
ㆍSpring & JSP

[jsp] 회원가입- id 유효성/중복 검사-db연동-ajax

by 매이슨 2021. 9. 12.

ID 유효성 검사


ajax사용 InsertForm.jsp→checkId.jsp → MemberDAO의 checkId(id) 메소드로 DB에 Id체크
→ checkId.jsp 에서 response로 리턴값 받아서 alert창띄우고/ return false로 회원가입 막음

/* InsertForm.jsp */
function check_id(){
  var id = $('#id').val();
  if(id == ""){
    $('#id').css('border','2px solid #F00'); 
    $('.id_caution').show();
    return false;
  }else if(id != ""){
    $.ajax({
      url:"checkId.jsp",
      data : {id:id},
      success : function(data, textStatus){
        if(data == 'existed'){
          alert('이미 가입된 아이디입니다.');
          return false;
        }else{
          $('#id').css('border','1px solid #ccc');
          $('.id_caution').hide();
          return false;
        }
      }
    });
  }
  return true;
}
/* checkId.jsp */
<%@page import="com.mountain.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<%
	String id = request.getParameter("id");
	System.out.println("id : "+id);
	MemberDAO mdao = new MemberDAO();
	String check = mdao.checkId(id);
	System.out.println("check : "+check);
	response.getWriter().write(check);
	response.getWriter().flush();
	response.getWriter().close();
%>

짧은코드
<%
	MemberDAO mdao = new MemberDAO();
	response.getWriter().write(mdao.checkId(request.getParameter("id")));
	response.getWriter().flush();
	response.getWriter().close();
%>

처음에는 11번째 라인까지 출력은 되었는데 그아래 부분을 할줄몰라 구글검색해서 찾음 ㅎㅎ 뿌듯


MemberDAO.java
// checkId() --------- existed면 사용할 수 없는 ID
public String checkId(String id) {
  String check = "empty";
    try {
      con = getCon();
      sql = "select id from mountain_member where id=?";
      pstmt = con.prepareStatement(sql);
      pstmt.setString(1, id);
      rs = pstmt.executeQuery();
      if(rs.next()){
        check="existed";
        System.out.println("DAO : 이미 등록된 ID입니다" + check);
      }else{
        System.out.println("DAO : 사용가능한 ID입니다" + check);
      }
      } catch (Exception e) {
        e.printStackTrace();
      }finally{
        closeDB();
    }
  return check;
}
// checkId()

처음에는 boolean타입으로 반환 해서 하려했는데
여러 책을 보면 보통 쓰는 return 문구들이 
- alreadyExisted
요런느낌 이라서 써봤다. 개발자스러운 문구같다. 멋있다.

ㅎㅎ 뿌듯~