본문 바로가기
개발 공부 Today I Learned

[국비 42일차 TIL] ID중복검사, 댓글 테이블, 관계도

by 개발자신입 2024. 1. 19.
반응형

 

  • postman
  • database development
  • dbeaver
  • aquerytool
  • 댓글달기, 관계도 그리기
  • 댓글 테이블 만들기
  • 댓글달기

 

 

 

 

board.jsp

 

<td class="title">
<a href="./detail?no=${row.no}"> ${row.title}

<c:if test="${row.comment ne 0}">&ensp;
<span>${row.comment }</span></c:if></a>
</td>

 

 

 

join.jsp

 

 

<script type="text/javascript">
//	$(document).ready(function (){ // 첫 문서가 로딩될 때 기능 실행
//		$('.id-alert').hide(); 
//	});

// 글로벌 변수
	let idCheckBool = false;
	
	

// 아래는 위의 코드와 같음. 다른 모양.
	$(function (){
		$('.id-alert, .name-alert, .pw-alert').hide();
		
		// onchange()
//		$("#id").change(function (){
//			alert("아이디 입력창 값이 변경되었습니다.");			
//		});
		
		$('#id').on("change keyup paste", function(){
//			   alert("아이디 입력창 값이 변경되었습니다.");
			   $('.id-alert').show();
			   $('.id-alert').html('<p class="alert">당신이 입력한 ID는 '+$('#id').val() + '</p>');
			   if ($('#id').val().length > 4) {
			       idCheck();
			   }
		});
});	
	
		// $(선택자).할일();
		function check() {
		let id = $("#id").val();
		if(id.length < 3 || id == ""){
			$('.id-alert').show();
			$("#id").focus();
			return false;
		} else {
			$('.id-alert').hide();
		}
		
		if(!idCheckBool){
			alert("ID 중복검사를 클릭해주세요.");
			return false;
		}
		
		let name=$('#name').val();
		if(name.length < 2){
			$('.name-alert').show();
			$('#name').focus();
			return false;
		}
		$('.name-alert').hide();
		
		let pw1 = $('#pw1').val();
		let pw2 = $('#pw2').val();
		if(pw1.length < 8){
			alert("암호는 8글자 이상이어야 합니다.")
			$('#pw1').focus();
			return false;
		}

		if(pw1 != pw2){
			alert("암호가 일치하지 않습니다.")
			return false;
		}
		if(pw1 != pw2){
			$('.pw-alert').show();
			$('#pw2').val("");
			$('#pw2').focus();
			return false;
		}
		$('.pw-alert').hide();
	}
		
	function idCheck(){
//		alert('ID 중복검사');

		let id = $('#id').val();
		
		const regExp = /^[a-zA-Z0-9가-힣]{2,10}$/;
	      
		if(id.length < 3 || regExp.test(id)){
//			alert("아이디는 영문자 4글자 이상이어야 합니다. (특수문자 사용 불가)")
			$('.id-alert').html('<p class="alert">아이디는 영문자 4글자 이상이어야 합니다. (특수문자 사용 불가)</p>');
			$('#id').focus();
		
		} else {
			// AJAX = 1. 페이징, 2. AJAX, 3. 파일 업로드
			$.ajax({
				url : './idCheck',		// 이동할 주소
				type : 'post',			// get, post
				dataType : 'text',		// 수신 타입
				data : {'id' : id},		// 보낼 값
				success : function(result){
					// alert("통신에 성공");
					
					if(result == 1){
						//alert("이미 가입된 아이디입니다.")
						$('.id-alert').append('<p class="alert">이미 가입되어 있는 아이디입니다.</p>');
						idCheckBool = false;
						$("#join_button").attr("disabled", "disabled");	// 비활성화
						$('#id').focus();
					} else {
//						alert("가입 가능한 아이디입니다.")
						$('.id-alert').append('<p class="alert">가입 가능한 아이디입니다.</p>');
						$('.id-alert .alert').css("color","green");
						idCheckBool = true;
						$("#join_button").removeAttr("disabled");		// 비활성화 제거
						//$('#name').focus();
					}
				},
				error : function(request, status, error) { // 접속불가, 문제 발생 등
					// alert("❗ ❗ 문제가 발생했습니다. ❗ ❗");
				}
			});
		}
		return false;		
	}
		
</script>

 

 

IDCheck.java

 

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.coffee.dao.MemberDAO;
import com.coffee.dto.MemberDTO;

@WebServlet("/idCheck")
public class IDCheck extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public IDCheck() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		
		String id = request.getParameter("id");
		
		MemberDTO dto = new MemberDTO();
		dto.setMid(id);
		
		MemberDAO dao = new MemberDAO();
		int result = dao.idCheck(dto);

//		System.out.println("검사 요청이 들어온 ID : " + id + " / 결과는 : " + result);
		PrintWriter pw = response.getWriter();
		pw.print(result);
	}

}

 

 

 

detail.java

 

		// 로그인한 회원이라면 조회수 올리기 2024-01-19
		HttpSession session = request.getSession();
		if(session.getAttribute("mid") != null) {
			//bno, mno
			dao.countUp(no,(String) session.getAttribute("mid"));
		}

 

 

 

 

 

반응형

댓글