오늘보다 더 나은 내일의 나에게_

비전공자의 IoT 국비 교육 수강일지 Day_49 본문

비전공자의 코딩일지

비전공자의 IoT 국비 교육 수강일지 Day_49

chan_96 2022. 2. 26. 18:01
728x90

회원가입 시 이메일 중복체크



이메일 입력후 중복체크 여부 확인(가능: true, 불가능: false)


코드
더보기
main.jsp 자바스크립트 emailCheck() 메서드
function emailCheck(){
        let email = document.querySelector("#email"); //이메일 작성창
        let checkEmail = document.querySelector("#checkEmail");

        let xhr = new XMLHttpRequest()

        //요청방식 , 요청경로
        xhr.open('get', 'IdCheckCon?email=' + email.value);
        //전송데이터의 형식
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8')
        //요청 & 전송할 데이터
        xhr.send()

        xhr.onreadystatechange = function(){
           if(xhr.readyState===XMLHttpRequest.DONE){  //요청성공
              if(xhr.status===200){ //응답성공
                 console.log("응답성공")
                 console.log(xhr.responseText) //응답데이터 확인 (responseXML)
                 checkEmail.innerText = xhr.responseText;

              }else{
                 console.log("응답실패")
              }
           }else{  //요청실패
              console.log("요청실패")
           }
        }
}​


idCheckCon.servlet
package com.member;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.DAO.memberDAO;

@WebServlet("/IdCheckCon")
public class IdCheckCon extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//1. email 값 받기(getParameter사용)
		String email = request.getParameter("email");
		
		//2. memberDAO email이 사용할 수 있는 email인지 확인해주는 메서드(idCheck())
		//반환값 : 있는 아이디면 true / 없는 아이디면 false
		//=>타입확인
		
		//3. console에 true/false(반환값) 출력
		memberDAO dao = new memberDAO();
		
		boolean check = dao.idCheck(email);
		System.out.println(check);
		
		PrintWriter out = response.getWriter();
		out.print(check);
		
	}
}​

 

memberDAO idCheck() 메서드
public boolean idCheck(String email) {
    boolean check = false;

    try {
        connect();

        String sql = "select email from message_member where email = ?";

        psmt = conn.prepareStatement(sql);
        psmt.setString(1, email);

        rs = psmt.executeQuery();

         if(rs.next()){ //email이 있는 경우 -> 사용할 수 없는 email(true반환)
            check = true;
         }else {//email이 없는 경우 -> 사용할 수 있는 email(false반환)
             check = false;	        	 
         }
    }catch(Exception e) {
        e.printStackTrace();
    }finally {
        close();
    }
    return check;
}

 


FrontController 패턴

: 클라이언트의 다양한 요청들을 한 곳으로 집중시켜 개발 및 유지보수에 효율성을 극대화시키는 패턴

확장자 패턴 이용. do로 오는 모든 요청을 한 곳에서 관리

 

Command 패턴

: 클라이언트로부터 받은 요청들에 대해서 서블릿이 작업을 직접 처리하지 않고 해당 클래스가 처리하도록 하는 패턴

728x90
Comments