반응형
- 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}"> 
<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"));
}
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 44일차 TIL] 댓글 삭제 오류 해결 (HeidiSQL 쿼리문 수정) (1) | 2024.01.23 |
---|---|
[국비 43일차 TIL] 게시판 댓글 작성, 삭제 (0) | 2024.01.22 |
[국비 41일차 TIL] jQuery jsp 회원가입, id 중복확인 (0) | 2024.01.18 |
[국비 40일차 TIL] 게시판 페이징, 회원가입 (0) | 2024.01.17 |
[국비 39일차 TIL] 마이페이지, pw 변경 (1) | 2024.01.16 |
댓글