2024. 1. 18. 17:09ㆍ2023.11.21-2024.05.31
<script type="text/javascript">
$(function() {
$('.id-alert, .name-alert, .pw-alert').hide();
});
function check() {
// $(선택자).할일();
let id = $("#id").val();
if (id.length < 3 || id == "") {
$('.id-alert').show();
$("#id").focus();
return false;
}
$('.id-alert').hide();
let name = $('#name').val();
if (name.length < 3) {
$('.name-alert').show();
$('#name').focus();
return false;
}
$('.name-alert').hide();
let pw1=$('#pw1').val();
let pw2=$('#pw2').val();
if (pw1 != pw2) {
alert("비밀번호가 일치하지 않아")
$('#pw2').val("");
$('#pw2').focus();
return false;
}
$('.pw2-alert').hide();
if (pw1.length < 8) {
$('.pw-alert').show();
$('#pw1').focus();
return false;
}
$('.pw1-alert').hide();
if (pw2.length < 8) {
alert("암호는 8글자 이상 부탁해")
$('#pw2').focus();
return false;
}
$('.pw2-alert').hide();
}
1교시
클래스 추상클래스
오버라이딩 오버로딩
var let const 호이스팅(https://velog.io/@elma98/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EB%8C%80%EB%B9%84-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EA%B3%BC-Hoisting
회원가입에 제이쿼리 넣기
*제이쿼리?
제이쿼리(jQuery)
제이쿼리는 자바스크립트 언어를 간편하게 사용할 수 있도록 단순화시킨 오픈 소스 기반의 자바스크립트 라이브러리입니다.
제이쿼리를 이용하면 문서 객체 모델(DOM)과 이벤트에 관한 처리를 손쉽게 구현할 수 있습니다.
또한, Ajax 응용 프로그램 및 플러그인도 제이쿼리를 활용하여 빠르게 개발할 수 있습니다.
https://tcpschool.com/jquery/intro(tcp스쿨)
https://learn.microsoft.com/en-us/aspnet/ajax/cdn/overview#jQuery_Releases_on_the_CDN_0
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.7.1.min.js"></script>
</head>
join.jsp에 헤드 위에 넣어주기> 제이쿼리 쓸거야라고 선언이 되어있는 상태이다.
제이쿼리 쓸거야 라고 불러드리는 화면이 필요하다.
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.7.1.min.js">
$(document).ready(function (){
//제이쿼리 시작
alert("제이쿼리가 동작합니다.");
});
</script>
>제이쿼리 시작!!(외워주면 좋다)
check() 로 만들어주기
가입하기 버튼 >submit
<button type="submit" class="btn btn-Warning">가입하기</button>
form태그에 return check() 만들어주기
<form action="./join" method="post" onsubmit="return check()">
<script type="text/javascript">
function check() {
// alert("제이쿼리가 동작합니다.");
let id = $("#id").val();
alert(id);
return false;
}
</script>
2교시 시험
후다닥 보고 자야지
아직 시험 안봄
<script type="text/javascript">
function check() {
// alert("제이쿼리가 동작합니다.");
let id = $("#id").val();
alert(id + " : " + id.length + "숫자검사 : " + isNaN(id));//Not a Number, 숫자면 거짓 문자면 참
return false;
}
</script>
숫자, 문자 판독
아이디, 이름, 비밀번호 유효성 검사하기
<script type="text/javascript">
function check() {
// alert("제이쿼리가 동작합니다.");
// $(선택자).할일();
let id = $("#id").val();
// alert(id + " : " + id.length;
if (id.length < 3 || id == "") {
alert("아이디는 3글자 이상 부탁해");
$("#id").focus();
return false;
}
let name = $('#name').val();
if (name.length < 3) {
alert("이름은 3글자 이상 부탁해")
$('#name').focus();
return false;
}
let pw1=$('#pw1').val();
let pw2=$('#pw2').val();
if (pw1 != pw2) {
alert("비밀번호가 일치하지 않아")
$('#pw1').focus();
return false;
}
if (pw1.length < 8) {
alert("암호는 8글자 이상 부탁해 쨔샤")
$('#pw1').focus();
return false;
}
if (pw2.length < 8) {
alert("암호는 8글자 이상 부탁해 임마")
return false;
}
}
</script>
<div class="input-group mb-2 id-alert">
<p class="alert">아이디를 잘 생각해보자</p></div>
<div class="input-group mb-2">
<label class="input-group-text">이름</label> <input type="text"
id="name" name="name" class="form-control" placeholder="이름을 적어줘">
</div>
<style type="text/css">
.id-alert, .name-alert, .pw-alert {
background-color: #9cb395;
}
.id-alert {
background-color: #9cb395;
}
.alert {
color: #F4EBE7;
}
</style>
암호를 확인해주세요 숨기기
</style>
<script type="text/javascript">
$(document).ready(function (){
$('.id-alert').hide();
});
다른 모양
//$(document).ready(function (){
$(funcion(){
$('.id-alert').hide();
});
function check() {
// alert("제이쿼리가 동작합니다.");
// $(선택자).할일();
let id = $("#id").val();
// alert(id + " : " + id.length;
if (id.length < 3 || id == "") {
//alert("아이디는 3글자 이상 부탁해");
$('.id-alert').show();
$("#id").focus();
return false;
}
계속 회원가입 안되고 오류나다가 겨우 고쳤다.
최종 정리
제이쿼리 사용해서 아이디, 이름, 암호 넣어서 회원가입하기.
<script type="text/javascript">
$(function() {
$('.id-alert, .name-alert, .pw-alert').hide();
});
function check() {
// $(선택자).할일();
let id = $("#id").val();
if (id.length < 3 || id == "") {
$('.id-alert').show();
$("#id").focus();
return false;
}
$('.id-alert').hide();
let name = $('#name').val();
if (name.length < 3) {
$('.name-alert').show();
$('#name').focus();
return false;
}
$('.name-alert').hide();
let pw1=$('#pw1').val();
let pw2=$('#pw2').val();
if (pw1 != pw2) {
alert("비밀번호가 일치하지 않아")
$('#pw2').val("");
$('#pw2').focus();
return false;
}
$('.pw2-alert').hide();
if (pw1.length < 8) {
$('.pw-alert').show();
$('#pw1').focus();
return false;
}
$('.pw1-alert').hide();
if (pw2.length < 8) {
alert("암호는 8글자 이상 부탁해")
$('#pw2').focus();
return false;
}
$('.pw2-alert').hide();
}
class 추가해서 만들기
<div class="input-group mb-2 id-alert">
<h1>회원가입</h1>
<div class="mx-3 p-3 bg-light">
<form action="./join" method="post" onsubmit="return check()">
<div class="input-group mb-2">
<label class="input-group-text">아이디</label>
<input type="text"id="id" name="id" class="form-control" placeholder="아이디를 적어줘">
<button class="input-group-text" onclick="return idCheck()" class="btn btn-success">ID검사</button>
</div>
<div class="input-group mb-2 id-alert">
<p>아이디는 3글자 이상 부탁해</p>
</div>
<div class="input-group mb-2">
<label class="input-group-text">이름</label> <input type="text"
id="name" name="name" class="form-control" placeholder="이름을 적어줘">
</div>
<div class="input-group mb-2 name-alert">
<p>이름은 3글자 이상 부탁할게</p>
</div>
<div class="input-group mb-2 -alert">
<label class="input-group-text">암호</label> <input
type="password" id="pw1" name="pw1" class="form-control"
placeholder="암호를 적어줘"> <label class=input-group-text>재입력</label>
<input type="password" id="pw2" name="pw2" class="form-control"
placeholder="잘 적은거 맞지?">
<div class="input-group mb-2 pw-alert">
<p>암호는 8글자 이상 써줘야해 고마워.</p>
</div>
<div class="input-group mb-3">
</div>
ID 유효성 검사 코드
function idCheck(){
//alert('id검사를 눌렀습니다.');
let id = $('#id').val();
if(id.length < 3){
alert("아이디는 5글자 이상이어야 합니다.");
$('#id').focus();
} else {
//AJAX = 어려운 순서 : 1페이징, 2 AJAX, 3 파일업로드
alert(id);
}
return false;
}
버튼 만들기> 아이디 div아래에 만들어주기
<button class="input-group-text" onclick="return idCheck()" class="btn btn-success">ID검사</button>
*비동기통신 알아두기
AJAX 만들기 -ID검사 할 수 있게 하기
function idCheck(){
//alert('id검사를 눌렀습니다.');
let id = $('#id').val();
const regExp = "/[ㄱ-ㅎ-ㅏ-ㅣ 가-힣]/g";//한글
alert(regExp.test(id)); //한글 포함여부 검사하는 정규식
if(id.length < 5){
alert("아이디는 5글자 이상이어야 합니다.");
$('#id').focus();
} else {
//AJAX = 어려운 순서 : 1페이징, 2 AJAX, 3 파일업로드
$.ajax({
url : './idCheck',//이동할 주소
type : 'post', // post/ get
dataType : 'text',// 수신할 타입
data : {'id' : id},//보낼 값
success : function(result){//성공시
//alert("통신에 성공했습니다.");
if(result == 1){
alert("이건 이미 있어. 다시 생각해보자");
} else{
alert("OK, 다음~")
}
},
error : function(request, status, error){//접속불가, 문제발생 등
alert("문제가 발생했습니다.");
}
});
}
return false;
IDCheck.java 서블릿(join서블릿이랑 중복된다. 외우도록하자)
package com.sukgi.web;
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.sukgi.dao.MemberDAO;
import com.sukgi.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);
}
}
MemberDAO 에 idCkeck 만들기
public int idCheck(MemberDTO dto) {
int result=1;
Connection con = db.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT COUNT(*) FROM member WHERE mid=?";
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1,dto.getMid());
rs = pstmt.executeQuery();
if(rs.next()) {
result = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rs, pstmt, con);
}
return result;
}
'2023.11.21-2024.05.31' 카테고리의 다른 글
240123 게시판 만들기(방문흔적 찾아가기) (1) | 2024.01.23 |
---|---|
기록 (0) | 2024.01.20 |
쿼리2 (0) | 2024.01.15 |
쿼리1 (0) | 2024.01.15 |
240106 >240109복습 게시판 만들기(Detail) (0) | 2024.01.09 |