자바

마이페이지 기능

코드 죄수 2022. 9. 1. 20:42

회원은 자신의 프로필 이미지와 정보들을 바꿀수 있다.

다른 기능들을 원한다면 왼쪽에 있는 탭을 누르면 바꿀수 있다.

 

단 회원 정보를 변경할때도 회원 가입 과 마찬가지로 유효성 검사를 통과 해야지 변경이 된다.

 

 

비밀번호도 마찬가지로 현재와 바꿀 비밀번호가 유효성을 통과 해야지만 바꿀 수 있다.

이번에는 비밀번호를 입력함과 동시에 비밀번호를 확인하는 것 보다 눌렀을 때 나오는것이 나을 것이라 생각 하여서 

여기서는 ajax를 사용하여 검사하지는 않았다.

 

mysql 에 자신의 신청 정보나 내가 쓴 글을 마이페이지 에서 확인할 수 있다.

3개씩 띄워 주며 4개 이상일시 오른쪽 아래에 번호가 생성되며 페이지 이동을 할 수 있다.

 

마이페이지 jsp

<%@page import="org.apache.commons.collections4.bag.SynchronizedSortedBag"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<!DOCTYPE html>
<%@ page import="requestinfo.RequestInfo"%>
<%@ page import="vo.reservationVO"%>
<%@ page import="mvc.model.BoardDTO"%>
<html>

<head>
<meta charset="UTF-8" />
<meta name="viewport"
	content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<title>ThrowsGG</title>
<!-- modal -->
<link rel="stylesheet"
	href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css">
<!-- CSS only -->
<link
	href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"
	rel="stylesheet"
	integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"
	crossorigin="anonymous">
<!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> -->
<script
	src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
	src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link
	href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"
	rel="stylesheet">
<!-- MDB icon -->
<link rel="icon" href="img/mdb-favicon.ico" type="image/x-icon" />
<!-- Font Awesome -->
<link rel="stylesheet"
	href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" />
<!-- Google Fonts Roboto -->
<link rel="stylesheet"
	href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap" />
<!-- MDB -->
<link rel="stylesheet" href="css/mdb.min.css" />

<!-- Prism -->
<link rel="stylesheet"
	href="https://mdbgo.io/mikolaj-smolenski/mdb5-demo-pro/dev/css/new-prism.css" />
<!-- Custom styles -->
<style>
main {
	padding-left: 240px;
}

body {
	background: #f5f5f5;
	margin-top: 20px;
	position: relative;
	padding-top: 0;
}

.ui-w-80 {
	width: 80px !important;
	height: auto;
}

.btn-default {
	border-color: rgba(24, 28, 33, 0.1);
	background: rgba(0, 0, 0, 0);
	color: #4E5155;
}

label.btn {
	margin-bottom: 0;
}

.btn-outline-primary {
	border-color: #26B4FF;
	background: transparent;
	color: #26B4FF;
}

.btn {
	cursor: pointer;
}

.text-light {
	color: #6c757c !important;
}

.btn-facebook {
	border-color: rgba(0, 0, 0, 0);
	background: #3B5998;
	color: #fff;
}

.btn-instagram {
	border-color: rgba(0, 0, 0, 0);
	background: #000;
	color: #fff;
}

.card {
	background-clip: padding-box;
	box-shadow: 0 1px 4px rgba(24, 28, 33, 0.012);
}

.row-bordered {
	overflow: hidden;
}

.account-settings-fileinput {
	position: absolute;
	visibility: hidden;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.account-settings-links .list-group-item.active {
	font-weight: bold !important;
}

html:not(.dark-style) .account-settings-links .list-group-item.active {
	background: rgb(0 0 0/ 10%) !important;
}

.account-settings-multiselect ~ .select2-container {
	width: 100% !important;
}

.light-style .account-settings-links .list-group-item {
	padding: 0.85rem 1.5rem;
	border-color: rgba(24, 28, 33, 0.03) !important;
}

.light-style .account-settings-links .list-group-item.active {
	color: #4e5155 !important;
}

.material-style .account-settings-links .list-group-item {
	padding: 0.85rem 1.5rem;
	border-color: rgba(24, 28, 33, 0.03) !important;
}

.material-style .account-settings-links .list-group-item.active {
	color: #4e5155 !important;
}

.dark-style .account-settings-links .list-group-item {
	padding: 0.85rem 1.5rem;
	border-color: rgba(255, 255, 255, 0.03) !important;
}

.dark-style .account-settings-links .list-group-item.active {
	color: #fff !important;
}

.light-style .account-settings-links .list-group-item.active {
	color: #4E5155 !important;
}

.light-style .account-settings-links .list-group-item {
	padding: 0.85rem 1.5rem;
	border-color: rgba(24, 28, 33, 0.03) !important;
}





.modal-content {
	-webkit-border-radius: 0;
	-webkit-background-clip: padding-box;
	-moz-border-radius: 0;
	-moz-background-clip: padding;
	border-radius: 6px;
	background-clip: padding-box;
	-webkit-box-shadow: 0 0 40px rgba(0, 0, 0, .5);
	-moz-box-shadow: 0 0 40px rgba(0, 0, 0, .5);
	box-shadow: 0 0 40px rgba(0, 0, 0, .5);
	color: #000;
	background-color: #fff;
	border: rgba(0, 0, 0, 0);
}

.modal-message .modal-dialog {
	width: 300px;
}

.modal-message .modal-body, .modal-message .modal-footer, .modal-message .modal-header,
	.modal-message .modal-title {
	background: 0 0;
	border: none;
	margin: 0;
	padding: 0 20px;
	text-align: center !important;
}

.modal-message .modal-title {
	font-size: 17px;
	color: #737373;
	margin-bottom: 3px;
}

.modal-message .modal-body {
	color: #737373;
}

.modal-message .modal-header {
	color: #fff;
	margin-bottom: 10px;
	padding: 15px 0 8px;
}

.modal-message .modal-header .fa, .modal-message .modal-header 
.glyphicon, .modal-message 
.modal-header .typcn, .modal-message .modal-header .wi {
	font-size: 30px;
}

.modal-message .modal-footer {
	margin: 25px 0 20px;
	padding-bottom: 10px;
}

.modal-backdrop.in {
	zoom: 1;
	filter: alpha(opacity = 75);
	-webkit-opacity: .75;
	-moz-opacity: .75;
	opacity: .75;
}

.modal-backdrop {
	background-color: #fff;
}

.modal-message.modal-success .modal-header {
	color: #53a93f;
	border-bottom: 3px solid #a0d468;
}

.modal-message.modal-info .modal-header {
	color: #57b5e3;
	border-bottom: 3px solid #57b5e3;
}

.modal-message.modal-danger .modal-header {
	color: #d73d32;
	border-bottom: 3px solid #e46f61;
}

.modal-message.modal-warning .modal-header {
	color: #f4b400;
	border-bottom: 3px solid #ffce55;
}

/* 부트스트랩 신청현황 */
body {
	background: #f6f9fc;
	margin-top: 20px;
}
/* booking */
.bg-light-blue {
	background-color: #e9f7fe !important;
	color: #3184ae;
	padding: 7px 18px;
	border-radius: 4px;
}

.bg-light-green {
	background-color: rgba(40, 167, 69, 0.2) !important;
	padding: 7px 18px;
	border-radius: 4px;
	color: #28a745 !important;
}

.bg-light-gray {
	color: #666;
	background-color: #eee;
	padding: 7px 18px;
	border-radius: 4px;
}

.buttons-to-right {
	position: absolute;
	right: 0;
	top: 80%;
}

.btn-gray {

	right: 0;
	top: 30%;
	color: #666;
	background-color: #eee;
	padding: 7px 18px;
	border-radius: 4px;
}

.booking:hover .buttons-to-right .btn-gray {
	opacity: 1;
	transition: .3s;
}

.buttons-to-right .btn-gray {
	opacity: 0;
	transition: .3s;
}

.btn-gray:hover {
	background-color: #36a3f5;
	color: #fff;
}

.booking {
	margin-bottom: 30px;
	border-bottom: 1px solid #eee;
	padding-bottom: 30px;
}

.booking:last-child {
	margin-bottom: 0px;
	border-bottom: none;
	padding-bottom: 0px;
}

@media screen and (max-width: 575px) {
	.buttons-to-right {
		top: 10%;
	}
	.buttons-to-right a {
		display: block;
		margin-bottom: 20px;
	}
	.buttons-to-right a:last-child {
		margin-bottom: 0px;
	}
	.bg-light-blue, .bg-light-green, .btn-gray {
		padding: 7px;
	}
}

.card {
	margin-bottom: 20px;
	background-color: #fff;
	border-radius: 4px;
	-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
	border-radius: 4px;
	box-shadow: none;
	border: none;
	padding: 25px;
}

.mb-5, .my-5 {
	margin-bottom: 3rem !important;
}

.msg-img {
	margin-right: 20px;
}

.msg-img img {
	width: 60px;
	border-radius: 50%;
}

img {
	max-width: 100%;
	height: auto;
}
</style>


<meta charset="utf-8">
<meta name="viewport"
	content="width=device-width, initial-scale=1, shrink-to-fit=no">

<link
	href="https://fonts.googleapis.com/css?family=Montserrat:200,300,400,500,600,700,800&display=swap"
	rel="stylesheet">

<link rel="stylesheet"
	href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

<link rel="stylesheet" href="css/animate.css">

<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">


<link rel="stylesheet" href="css/bootstrap-datepicker.css">
<link rel="stylesheet" href="css/jquery.timepicker.css">

<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/style.css">
</head>

<body data-mdb-spy="scroll" data-mdb-target="#scrollspy1"
	data-mdb-offset="1" class="scrollspy-example">
	<!-- YOUR WORK HERE -->
<jsp:include page="Nav.jsp"></jsp:include>

	<div class="container light-style flex-grow-1 container-p-y">

		<h4 class="font-weight-bold py-3 mb-4">Account settings</h4>

		<div class="card overflow-hidden">
			<div class="row no-gutters row-bordered row-border-light">
				<div class="col-md-3 pt-0">
					<div class="list-group list-group-flush account-settings-links" id="myTab">
						<a class="list-group-item list-group-item-action active"
							data-toggle="tab" href="#account-general">정보</a><a
							class="list-group-item list-group-item-action" data-toggle="tab"
							href="#account-change-password">비밀번호 변경</a><a
							class="list-group-item list-group-item-action" data-toggle="tab"
							href="#account-info" >신청현황</a><a
							class="list-group-item list-group-item-action" data-toggle="tab"
							href="#account-board" >내가 쓴 글</a>
					</div>
				</div>
				<div class="col-md-9">
					<div class="tab-content">
						<div class="tab-pane fade active show" id="account-general">
							
							<div class="card-body media align-items-center">
								<div id="editor" class="d-block ui-w-80" contenteditable="true"><img id='output' alt="" class="d-block ui-w-80"
								src="<%out.println((String) session.getAttribute("profile"));%>">
								</div>
								
								<!-- 								<div alt="" class="d-block ui-w-80"> -->
								<!-- 									<img src="https://bootdey.com/img/Content/avatar/avatar1.png" -->
								<!-- 										alt="" class="d-block ui-w-80"> -->
								<!-- 								</div> -->
								<div class="media-body ml-4">
									<label class="btn btn-outline-primary"> Upload new
										photo<input id="img-selector"
										class="account-settings-fileinput" type="file"
										accept="image/*" onchange='openFile(event)'>
									</label> &nbsp;
									<button type="button" class="btn btn-default md-btn-flat"
										onclick=resetimg()>Reset</button>
										<form novalidate name="formdel"  encType="UTF-8">
									<button type="submit" class="btn btn-primary"
											 style="float: right;" onclick=delMember()>회원 탈퇴</button>
											</form>
									<div class="text-light1 small mt-1" style="color: #6c757d">Allowed
										JPG, GIF or PNG. Max size of 800K</div>
								</div>
							</div>
							<hr class="border-light m-0">

							<div class="card-body" id="card1">
								<!-- 							<form name="userinfo" method="post" action="infochange.lg" method ="post" target="blankifr"> -->
								<div class="form-group">
									<label class="form-label">Nickname</label> <input type="text"
										class="form-control" id="nickname" name="nickname"
										value=<%out.println((String) session.getAttribute("nickname"));%>
										required minlength="2" maxlength="10" placeholder="2자 이상">
								</div>
								<div class="form-group">
									<label class="form-label">Name</label> <input type="text"
										class="form-control" id="name" name="name"
										value=<%out.println((String) session.getAttribute("name"));%>
										required minlength="2" maxlength="10" placeholder="2자 이상">
								</div>
								<div class="form-group">
									<label class="form-label">E-mail</label> <input type="email"
										id="email" name="email" required
										pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"
										maxlength="30" placeholder="ex)abc123@gmail.com"
										class="form-control mb-1"
										value=<%out.println((String) session.getAttribute("email"));%>>
								</div>
								<div class="form-group">
									<label class="form-label">phone</label> <input type="text"
										class="form-control"
										value=<%out.println((String) session.getAttribute("phone"));%>
										id="phone" name="phone" required
										pattern="[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}" maxlength="13"
										placeholder=" - 자동">
								</div>

								<div class="form-group">
									<div class="alert alert-danger" id="type-danger">형식에 맞게
										입력해 주세요.</div>
									<!-- 								</form> -->
									<div class="text-right mt-3">
										<button type="button" class="btn btn-primary"
											onclick=changeinfo()>정보 저장</button>

										&nbsp;
										<button type="button" class="btn btn-primary"
											onclick=cancleinfo()>취소</button>
										
									</div>
								</div>
							</div>
						</div>
						

						<div class="tab-pane fade" id="account-change-password">
							<div class="card-body pb-2">

								<div class="form-group">
									<label class="form-label">Current password</label> <input
										type="password" class="form-control" id="password" required
										pattern="(?=.*\d)(?=.*[a-zA-Z])(?=.*[0-9]).{8,}" minlength="8"
										maxlength="20">
								</div>
								<div class="alert alert-danger" id="password-danger">비밀번호가
									틀렸습니다.</div>

								<div class="form-group">
									<label class="form-label">New password</label> <input
										type="password" class="form-control" id="newpassword" required
										pattern="(?=.*\d)(?=.*[a-zA-Z])(?=.*[0-9]).{8,}" minlength="8"
										maxlength="20" placeholder="숫자와 영어 포함 8자 이상">
								</div>

								<div class="form-group">
									<label class="form-label">Repeat new password</label> <input
										type="password" class="form-control" id="newrepeatpassword"
										required pattern="(?=.*\d)(?=.*[a-zA-Z])(?=.*[0-9]).{8,}"
										minlength="8" maxlength="20" placeholder="숫자와 영어 포함 8자 이상">
								</div>
								<div class="alert alert-danger" id="password-repeat-danger">비밀번호가
									일치하지 않습니다.</div>
								<div class="alert alert-danger" id="password-type-danger">형식을
									지켜주세요.</div>
								<div class="form-group">
									<div class="text-right mt-3">
										<button type="button" class="btn btn-primary"
											onclick=changepassword()>비밀번호 변경</button>
										
									</div>
								</div>

							</div>
						</div>
						
						<div class="tab-pane fade" id="account-info">
							<!-- 						부트스트랩 신청현황 -->




							<!-- 공사중 ~~~~~~ -->
							<div class="container">
								<div class="row">
									<div class="col-md-12">
										<div class="card card-white mb-5">

											<div class="card-body">
												<ul class="list-unstyled">
												<%
													RequestInfo ri = new RequestInfo();
													Connection con;
													Class.forName("com.mysql.cj.jdbc.Driver");
													System.out.println("DRIVER LOADING.....");
													con = DriverManager.getConnection("jdbc:mysql://localhost:3306/throwsgg?user=root&password=1234");
													System.out.println("Connection success!");
													PreparedStatement pstmt = null;
													ResultSet rs = null;
													
													List<reservationVO> list = new ArrayList<reservationVO>();
// 													List<List<String>> list = new ArrayList<List<String>>();
													String SQL = "select * from reservationtable where userid ='" + (String) session.getAttribute("id") + "' ORDER BY resDate DESC ;";
													System.out.println(SQL);
													pstmt = con.prepareStatement(SQL);
													rs = pstmt.executeQuery();
													int count=0;
													int index[]= new int[3];
													String phoneindex[] = new String[3];
													while(rs.next()){	//데이터 객체 리스트에 넣기
														reservationVO data = new reservationVO();
														data.setReservationIndex(rs.getInt(1));
														data.setPhonNumber(rs.getString(2));
														data.setResTime(rs.getString(3));
														data.setResDate(rs.getString(4));
														data.setResComment(rs.getString(5));
														data.setUserId(rs.getString(6));
														data.setUsername(rs.getString(7));
														data.setOpt(rs.getString(8));
														data.setDesertionNo(rs.getString(9));
														list.add(data);
														count++;
													}
													String pageStrNum = request.getParameter("pageNum");
													if (pageStrNum == null) { // 클릭한게 없으면 1번 페이지
														pageStrNum = "1";
													}
													int pageNum = Integer.parseInt(pageStrNum); //현재 페이지 번호
													int pageSize = 5;	// 5 페이지씩 선택할수 있음
													int pageItem = 3;	// 1페이지당 3개씩 보여주기
													
													
// 													for(int j=( 3 * pageNum ) -3 ; j<pageNum * pageItem; j++) { // 선택된 페이지 부터 3객씩 띄우기 
														
// 														out.println("j : "+j + list.get(j));
																
													
// 													}
													%>
												<% 
													for (int j=( 3 * pageNum) -3 ; j<pageNum * pageItem; j++){    		 
			if(j>=list.size()){
					break;
					}
	    		 if (ri.Daycompare(list.get(j).getResDate())) {%>
					<li class="position-relative booking">
					<div class="media">
					<div class="media-body">
					<h5 class="mb-4">
					<span class="mr-2 d-block d-sm-inline-block mb-1 mb-sm-0">신청자 : </span>
					<span class="border-right pr-2 mr-2"><%out.print(list.get(j).getUsername()); %></span>
					<span><%out.print(list.get(j).getPhonNumber()); %></span>
					<span class="badge badge-success ml-3">예약중</span>
					</h5>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 번호 : </span>
					<span class="bg-light-green"><%out.print(list.get(j).getReservationIndex()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 날짜 : </span>
					<span class="bg-light-green"><%out.print(list.get(j).getResDate()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 시간 : </span>
					<span class="bg-light-green"><%out.print(list.get(j).getResTime()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">내용 : </span>
					<span ><%out.print(list.get(j).getResComment()); %></span>
					</div>
					<div class="mb-5">
					</div>
					
					<a href="#" class="btn-gray" onclick=delinfo(<%= list.get(j).getReservationIndex()%>,<%=list.get(j).getPhonNumber()%>) ><i class="far fa-times-circle"></i>신청취소</a>
					</div>
					</div>
					</li>
				<%}else { %>
					<li class="position-relative booking">
					<div class="media">
					<div class="media-body">
					<h5 class="mb-4">
					<span class="mr-2 d-block d-sm-inline-block mb-1 mb-sm-0">신청자 : </span>
					<span class="border-right pr-2 mr-2"><%out.print(list.get(j).getUsername()); %></span>
					<span><%out.print(list.get(j).getPhonNumber()); %></span>
					<span class="badge badge-success ml-3" style="color:#fff; background-color:gray">지난예약</span>
					</h5>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 번호 : </span>
					<span class="bg-light-gray"><%out.print(list.get(j).getReservationIndex()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 날짜 : </span>
					<span class="bg-light-gray"><%out.print(list.get(j).getResDate()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 시간 : </span>
					<span class="bg-light-gray"><%out.print(list.get(j).getResTime()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">내용 : </span>
					<span ><%out.print(list.get(j).getResComment()); %></span>
					</div>
					<div class="mb-5">
					</div>
					</div>
					</div>
					</li>
				<%}
		} %>
													
												</ul>

											</div>
										</div>

									</div>
								</div>
								
								
<!-- 								번호 선택칸 부분  -->


								<div class="pt-3">
								
								<%
								if(count != 0){
									int pageCount = count/pageItem + (count%pageItem == 0? 0: 1); // 전체 페이지수 계산
									int startPage = ((pageNum-1)/pageItem)*pageItem+1;
									int endPage = startPage + pageItem-1;
									if(endPage>pageCount){
										endPage = pageCount;
									}
								
								%>
                        <ul class="pagination justify-content-end mb-0">
                        <% 
                        if (startPage> pageItem){	//이전 이 뜰 필요있는지 확인
                        %>
                            <li class="page-item ">
                                <a class="page-link" href="userinfo.jsp?pageNum=<%=startPage-pageSize%>">Previous</a>
                            </li>
                            <%} 
                            for(int i=startPage; i<=endPage; i++){
                            	if(i == pageNum){//out.print("start : " +startPage +"end : " + endPage + "i : "+ i);
                            %>
                            <li class="page-item active"><a class="page-link"><%=i%></a></li>
                            <%}else{ %>
                            <li class="page-item"><a class="page-link" href="userinfo.jsp?pageNum=<%=i%>"><%=i%></a></li>
                            <%}} 
                            if(endPage<pageCount){
                            %>
                            
                            <li class="page-item">
                                <a class="page-link" href="userinfo.jsp?pageNum=<%=startPage+pageSize%>">Next</a>
                            </li>
                            <%} }%>
                            
                            
                        </ul>
                    </div>
							</div>
							<!-- 신청현황 끝 -->
						</div>
						
						<!--  낵가 쓴 글               -->
	
	
	<div class="tab-pane fade" id="account-board">
							<div class="container">
								<div class="row">
									<div class="col-md-12">
										<div class="card card-white mb-5">

											<div class="card-body">
												<ul class="list-unstyled">
												<%
													
													Connection con2;
													Class.forName("com.mysql.cj.jdbc.Driver");
													System.out.println("DRIVER LOADING.....");
													con2 = DriverManager.getConnection("jdbc:mysql://localhost:3306/throwsgg?user=root&password=1234");
													System.out.println("Connection success!");
													PreparedStatement pstmt2 = null;
													ResultSet rs2 = null;
													
													List<BoardDTO> list2 = new ArrayList<BoardDTO>();
// 													List<List<String>> list = new ArrayList<List<String>>();
													String SQL2 = "select * from board where id ='" + (String) session.getAttribute("id") + "' ORDER BY status DESC ;";
													System.out.println(SQL2);
													pstmt2 = con2.prepareStatement(SQL2);
													rs2 = pstmt2.executeQuery();
													int count2=0;
													int index2=0;
													while(rs2.next()){	//데이터 객체 리스트에 넣기
														BoardDTO data2 = new BoardDTO();
														data2.setNum(rs2.getInt(1));
														data2.setId(rs2.getString(2));
														data2.setName(rs2.getString(3));
														data2.setSubject(rs2.getString(4));
														data2.setContent(rs2.getString(5));
														data2.setRegist_day(rs2.getString(6));
														data2.setHit(rs2.getInt(7));
														data2.setPhone(rs2.getString(8));
														data2.setPetName(rs2.getString(9));
														data2.setBreed(rs2.getString(10));
														data2.setLostDate(rs2.getString(11));
														data2.setGender(rs2.getString(12));
														data2.setAge(rs2.getString(13));
														data2.setLostPlace(rs2.getString(14));
														data2.setFigure(rs2.getString(15));
														data2.setPetImg(rs2.getString(16));
														data2.setStatus(rs2.getString(17));
														
														list2.add(data2);
														count2++;
													}
													String pageStrNum2 = request.getParameter("pageboard");
													if (pageStrNum2 == null) { // 클릭한게 없으면 1번 페이지
														pageStrNum2 = "1";
													}
													int pageboard = Integer.parseInt(pageStrNum2); //현재 페이지 번호
													int pageSize2 = 5;	// 5 페이지씩 선택할수 있음
													int pageItem2 = 3;	// 1페이지당 3개씩 보여주기
													
													
// 													for(int j=( 3 * pageNum ) -3 ; j<pageNum * pageItem; j++) { // 선택된 페이지 부터 3객씩 띄우기 
// 														out.println("j : "+j + list.get(j));
// 													}
													%>
												<% 
													for (int j=( 3 * pageboard) -3 ; j<pageboard * pageItem2; j++){    		 
			if(j>=list2.size()){
					break;
						}
						
						if(list2.get(j).getStatus().equals("lost")){%> 
					<li class="position-relative booking">
					<div class="media">
					<div class="media-body">
					<h5 class="mb-4">
					<span class="mr-2 d-block d-sm-inline-block mb-1 mb-sm-0">신청자 : </span>
					<span class="border-right pr-2 mr-2"><%out.print(list2.get(j).getName()); %></span>
					<span><%out.print(list2.get(j).getPhone()); %></span>
					<span class="badge badge-success ml-3">공고중</span>
					</h5>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 번호 : </span>
					<span class="bg-light-green"><%out.print(list2.get(j).getNum()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 날짜 : </span>
					<span class="bg-light-green"><%out.print(list2.get(j).getRegist_day()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">내용 : </span>
					<span ><%out.print(list2.get(j).getContent()); %></span>
					</div>
					<div class="mb-5">

					<div>
					<a onclick=changeStatus(<%= list2.get(j).getNum()%>) class="btn-gray"><i class="far fa-check-circle"></i>완료</a>&nbsp
					<a href="BoardViewPetAction.do?num=<%=list2.get(j).getNum()%>&pageNum=1" class="btn-gray" >자세히 보기</a>
					
					</div>
				
					</div>
					</li>
						
					<%}else { %>
					<li class="position-relative booking">
					<div class="media">
					<div class="media-body">
					<h5 class="mb-4">
					<span class="mr-2 d-block d-sm-inline-block mb-1 mb-sm-0">신청자 : </span>
					<span class="border-right pr-2 mr-2"><%out.print(list2.get(j).getName()); %></span>
					<span><%out.print(list2.get(j).getPhone()); %></span>
					<span class="badge badge-success ml-3" style="color:#fff; background-color:gray">공고종료</span>
					</h5>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 번호 : </span>
					<span class="bg-light-gray"><%out.print(list2.get(j).getNum()); %></span>
					</div>
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">신청 날짜 : </span>
					<span class="bg-light-gray"><%out.print(list2.get(j).getRegist_day()); %></span>
					</div>
					
					<div class="mb-3">
					<span class="mr-2 d-block d-sm-inline-block mb-2 mb-sm-0">내용 : </span>
					<span ><%out.print(list2.get(j).getContent()); %></span>
					</div>
					<div class="mb-5">
					
					
					<div>
					<a href="BoardViewPetAction.do?num=<%=list2.get(j).getNum()%>&pageNum=1" class="btn-gray" >자세히 보기</a>
					</div>
				
					</div>
					</div>
					</div>
					</li>
				<% }
						} %>
													
												</ul>

											</div>
										</div>

									</div>
								</div>
								
								
<!-- 								번호 선택칸 부분  -->


								<div class="pt-3">
								
								<%
								if(count2 != 0){
									int pageCount2 = count2/pageItem2 + (count2%pageItem2 == 0? 0: 1); // 전체 페이지수 계산
									int startPage2 = ((pageboard-1)/pageItem2)*pageItem2+1;
									int endPage2 = startPage2 + pageItem2-1;
									if(endPage2>pageCount2){
										endPage2 = pageCount2;
									}
								
								%>
                        <ul class="pagination justify-content-end mb-0">
                        <% 
                        if (startPage2> pageItem2){	//이전 이 뜰 필요있는지 확인
                        %>
                            <li class="page-item ">
                                <a class="page-link" href="userinfo.jsp?pageboard=<%=startPage2-pageSize2%>">Previous</a>
                            </li>
                            <%} 
                            for(int i=startPage2; i<=endPage2; i++){
                            	if(i == pageboard){//out.print("start : " +startPage +"end : " + endPage + "i : "+ i);
                            %>
                            <li class="page-item active"><a class="page-link"><%=i%></a></li>
                            <%}else{ %>
                            <li class="page-item"><a class="page-link" href="userinfo.jsp?pageboard=<%=i%>"><%=i%></a></li>
                            <%}} 
                            if(endPage2<pageCount2){
                            %>
                            
                            <li class="page-item">
                                <a class="page-link" href="userinfo.jsp?pageboard=<%=startPage2+pageSize2%>">Next</a>
                            </li>
                            <%} }%>
                            
                            
                        </ul>
                    </div>
							</div>
						</div>
						
						
						
					</div>
				</div>
			</div>
		</div>



	</div>
						
						
						
					</div>
				</div>
			</div>
		</div>



	</div>
	
	
	
	

	<!-- Prism -->

	<script type="text/javascript"
		src="https://mdbgo.io/mikolaj-smolenski/mdb5-demo-pro/dev/js/new-prism.js"></script>
	<script type="text/javascript"
		src="https://mdbgo.io/mikolaj-smolenski/mdb5-demo-pro/dev/js/dist/mdbsnippet.min.js"></script>
	<!-- MDB -->
	<script type="text/javascript" src="js/mdb.min.js"></script>
	<!-- Custom scripts -->
	<script type="text/javascript"></script>

	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<script src="js/jquery.min.js"></script>
	<script src="js/jquery-migrate-3.0.1.min.js"></script>
	<script src="js/popper.min.js"></script>
	<script src="js/bootstrap.min.js"></script>
	<script src="js/jquery.easing.1.3.js"></script>
	<script src="js/jquery.waypoints.min.js"></script>
	<script src="js/jquery.stellar.min.js"></script>
	<script src="js/jquery.animateNumber.min.js"></script>
	<script src="js/bootstrap-datepicker.js"></script>
	<script src="js/jquery.timepicker.min.js"></script>
	<script src="js/owl.carousel.min.js"></script>
	<script src="js/jquery.magnific-popup.min.js"></script>
	<script src="js/scrollax.min.js"></script>
	<script
		src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
	<script src="js/google-map.js"></script>
	<script src="js/main.js"></script>

	<!-- YOUR WORK HERE -->
	<script>
	
// 	location.reload();
 var openFile = function(event) {
        var input = event.target;

        var reader = new FileReader();
        reader.onload = function(){
          var dataURL = reader.result;
          var output = document.getElementById('output');
          output.src = dataURL;
//           var editor = document.getElementById('editor');
//           editor.src = dataURL;
        };
        reader.readAsDataURL(input.files[0]);
      };
      
      function resetimg(){
    	  var output = document.getElementById('output');
          output.src = "https://bootdey.com/img/Content/avatar/avatar1.png";
      }
      
    
      
      function cancleinfo(){
    	 var modals = document.getElementById("changeinfo-success");
    	 $("#changeinfo-success").modal("show");
//     	  var name = document.forms['userinfo']['name'];
//     	  console.log(name.value);
    	  <%String nickname = (String) session.getAttribute("nickname");
String name = (String) session.getAttribute("name");
String email = (String) session.getAttribute("email");
String phone = (String) session.getAttribute("phone");%>
<%--     	  name.setAttribute('value','<%out.print(name);%>'); --%>
		  $('#nickname').val('<%out.print(nickname);%>');
    	  document.getElementById('name').value='<%out.print(name);%>';
    	  document.getElementById('email').value='<%out.print(email);%>';
    	  $('#phoneNum').val('<%out.print(phone);%>');
      }
     
      
      $(document).ready(function(){
    	    $('a[data-toggle="tab"]').on('show.bs.tab', function(e) {
    	        localStorage.setItem('activeTab', $(e.target).attr('href'));
    	    });
    	    var activeTab = localStorage.getItem('activeTab');
    	    if(activeTab){
    	        $('#myTab a[href="' + activeTab + '"]').tab('show');
    	    }
    	});
      
      function delinfo(num, phone){
 
    	  var index = num;
    	  var phone = phone;
    	  $.ajax({
    		  type: "post",
    			url: "delinfo.lg",
    			data: {
    				id : index,
    				phonenNm : phone,
    			}
    		  
    	  }).done(function(data){
    		  window.location.reload();
    		  alert("취소 완료!");
    	  }).error(function(data){
    		  alert(index)
    	  })
      }
      
      function changeStatus(index){
    	  var num = index;
    	  $.ajax({
    		  type:"post",
    		  url: "changeStatus.lg",
    		  data:{
    			  num: num,
    		  }
    	  }).done(function (data){
    		  window.location.reload();
    		  alert("공고 모집중에서 완료로 변경되었습니다!");
    	  }).error(function(data){
    		  alert("error")
    	  })
      }
      </script>
      <script src="js/newpasswordspace.js"></script>
	<!-- JavaScript Bundle with Popper -->
	<script
		src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"
		integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa"
		crossorigin="anonymous"></script>
	<script src="js/telcheck.js"></script>
	<script src="js/repeatPW.js"></script>
	<script src="js/changeinfo.js"></script>
	<script src="js/otherspace.js"></script>
	<script src="js/delMember.js"></script>
	
	"></script>
	
</body>
<!-- <iframe name='blankifr' style='display:none;'></iframe> -->
</html>

 

회원 정보 바꾸는 js

///**
// * 
// */

document.getElementById('password-danger').style.display = 'none';
document.getElementById('password-repeat-danger').style.display = 'none';
document.getElementById('password-type-danger').style.display = 'none';
document.getElementById('type-danger').style.display = 'none';

function changeinfo() {
	var img = jQuery('#output').attr("src");
	var nickname = document.getElementById('nickname');
	var name = document.getElementById('name');
	var email = document.getElementById('email');
	var phoneNum = document.getElementById('phone');
	if (name.checkValidity() && phoneNum.checkValidity() && email.checkValidity() && nickname.checkValidity()) {
		$.ajax({
			type: "post",
			url: "infochange.lg",
			dataType: "text",
			data: {
				img: img,
				nickname: nickname.value,
				name: name.value,
				email: email.value,
				phone: phoneNum.value,
			}
		}).done(function(data) {
			if (data == "true") {
				location.replace('userinfo.jsp');
				alert("수정 완료")
			} else {
				alert("??");
			}
		}).error(function(data) {
			alert("??????");
		})
	} else {
		document.getElementById('type-danger').style.display = '';
	}
}

function checkrepeatpassword() {
	var npw = document.getElementById('newpassword').value;
	var nrpw = document.getElementById('newrepeatpassword').value;
	if (npw == nrpw) {
		return true;
	} else {
		return false;
	}
}

function changepassword() {
	var pw = document.getElementById('password');
	var npw = document.getElementById('newpassword');
	var nrpw = document.getElementById('newrepeatpassword');

	if (pw.checkValidity() && npw.checkValidity() && nrpw.checkValidity()) {
		if (checkrepeatpassword()) {
			$.ajax({
				type: "post",
				url: "pwcheck.lg",
				dataType: "text",
				data: {
					pw: pw.value,
					npw: npw.value,
					nrpw: nrpw.value,
				}
			}).done(function(data) {
				if (data == "success") {
					document.getElementById('password-repeat-danger').style.display = 'none';
					document.getElementById('password-danger').style.display = 'none';
					document.getElementById('password-type-danger').style.display = 'none';
					$('#password').val('');
					$('#newpassword').val('');
					$('#newrepeatpassword').val('');
					alert("변경완료~!");

				} else {
					document.getElementById('password-type-danger').style.display = 'none';
					document.getElementById('password-repeat-danger').style.display = 'none';
					document.getElementById('password-danger').style.display = '';
				}
			}).error(function(data) {
				alert("error")
			})
		} else {

			document.getElementById('password-danger').style.display = 'none';
			document.getElementById('password-type-danger').style.display = 'none';
			document.getElementById('password-repeat-danger').style.display = '';
		}
	} else {
		document.getElementById('password-danger').style.display = 'none';
		document.getElementById('password-repeat-danger').style.display = 'none';
		document.getElementById('password-type-danger').style.display = '';
	}


}

가끔 form태그에 있는 정보를 ajax로 전송하려 할때 오류가 걸리는 모습을 보여서 

확인한 결과 form태그에 있는 정보는 ajax로 보낼수 없는 것 같다는 결과를 얻어서 

form태그를 지워버렸다.

 

회원 탈퇴 js

/**
 * 
 */
 
 function delMember() {
   
   if(confirm("정말 탈퇴 하시겠습니까 ?") == true){      
      var formdel = document.formdel;
      var password = repeatpw;
         formdel.method = "post";
         formdel.action = "delall.lg";
         formdel.submit();    // 자바스크립트에서 서블릿으로 전송
         
     }else{
      return;
   }
}

로그인 과 같이 form 태그에 있는 정보를 서블릿으로 전송하여 회원 정보를 삭제한다.

 

서블릿

package controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
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 javax.servlet.http.HttpSession;

import action.Action;
import dao.BoardStatus;
import dao.LoginDAO;
import dao.MemberDAO;
import dao.MemberInsertDAO;
import dao.MemberUpdateDAO;
import dao.Sens_sms_v2;
import mailsender.MailController;
import vo.ActionForward;
import vo.LoginUser;

/**
 * Servlet implementation class loginController
 */
@WebServlet("*.lg")
public class loginController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public loginController() {
		super();
		// TODO Auto-generated constructor stub
	}

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

		request.setCharacterEncoding("UTF-8");
		String RequestURI = request.getRequestURI();
		String contextPath = request.getContextPath();
		String command = RequestURI.substring(contextPath.length());
		ActionForward forward = null;
		Action action = null;

		if (command.equals("/checkid.lg")) { // 회원가입시
			String id = request.getParameter("id"); // ajax값 가져오기
//			if(id.length() <= 4 && id.length() >0) {
//				response.getWriter().write("tooshort");
//			}
			System.out.println(id);
			MemberDAO member = new MemberDAO();
			response.getWriter().write(new MemberDAO().idCheck(id) + "");
		} else if (command.equals("/insert.lg")) {
			MemberInsertDAO insert = new MemberInsertDAO();
			String id = request.getParameter("id");
			String pw = request.getParameter("password");
			String nickname = request.getParameter("nickname");
			String name = request.getParameter("name");
			String phoneNum = request.getParameter("phone");
			String email = request.getParameter("email");

			System.out.println(name + " " + phoneNum + " " + email + " " + id + " " + pw);
			insert.insertMember(id, pw, nickname, name, email, phoneNum);
			response.sendRedirect("Welcome.jsp");
		} else if (command.equals("/login.lg")) {
			HttpSession session = request.getSession(true);
			LoginDAO login = new LoginDAO();
			String id = request.getParameter("id");
			String pw = request.getParameter("pw");
			System.out.println("login : " + id + " " + pw);
			LoginUser check = new LoginDAO().checkInfo(id, pw);
			if (check != null) { // 로그인한 회원의 정보 세션에 저장
				session.setAttribute("id", id);
				session.setAttribute("password", pw);
				session.setAttribute("email", check.getEmail());
				session.setAttribute("phone", check.getPhone());
				session.setAttribute("name", check.getName());
				session.setAttribute("nickname", check.getNickname());
				session.setAttribute("profile", check.getProfile());
				session.setAttribute("joinDate", check.getJoinDate());
				session.setAttribute("user", check);
			}
			System.out.println(check + "");
			response.getWriter().write(check + "");
		} else if (command.equals("/infochange.lg")) {
			MemberUpdateDAO update = new MemberUpdateDAO();
			HttpSession session = request.getSession();
			String img = request.getParameter("img");
			String nickname = request.getParameter("nickname");
			String name = request.getParameter("name");
			String phoneNum = request.getParameter("phone");
			String email = request.getParameter("email");
			String id = (String) session.getAttribute("id");
			update.updateMember(id, nickname, name, email, phoneNum,img);
			session.setAttribute("profile", img);
			session.setAttribute("email", email);
			session.setAttribute("phone", phoneNum);
			session.setAttribute("name", name);
			session.setAttribute("nickname", nickname);
			System.out.println(nickname + " " + name + " " + phoneNum + " " + email);

//			PrintWriter writer = response.getWriter();
//			writer.println("<script> location.replace('userinfo.jsp');</script>"); 
//			writer.close();
//			RequestDispatcher rd = request.getRequestDispatcher("/userinfo.jsp");
//			rd.forward(request, response);
			response.getWriter().write(true + "");
		} else if (command.equals("/checkMail.lg")) {
			HttpSession session = request.getSession(true);
			String id = request.getParameter("id");
			String email = request.getParameter("email");
			System.out.println("checkMail : " + id + " " + email);
			boolean mailCheck = new LoginDAO().checkMail(id, email);
//	         if(mailCheck == true) {
//	            System.out.println("asdsadasdsadasdasd");
//	            response.sendRedirect("sendMail.lg");
////	            RequestDispatcher rd = request.getRequestDispatcher("sendMail.lg");
//	            response.getWriter().write(mailCheck + "");
//	         }else {
			response.getWriter().write(mailCheck + "");

		} else if (command.equals("/sendMail.lg")) {
			String email = request.getParameter("email");
			String id = request.getParameter("id");
			System.out.println("sendMail" + email);
			String fakePw = new MailController().getRandomPw();
			new LoginDAO().updateFakePw(id, fakePw);
			new MailController(id, email, fakePw).start();
			System.out.println(fakePw + "asdasd");
//	         response.sendRedirect("afterSendPw.jsp");
		} else if(command.equals("/pwcheck.lg")) {
			LoginDAO check = new LoginDAO();
			HttpSession session = request.getSession();
			String pw = request.getParameter("pw");
			String id = (String) session.getAttribute("id");
			LoginUser cpw = check.checkInfo(id, pw);
			System.out.println("cpw : "+cpw);
			if(cpw != null) {
				RequestDispatcher rd = request.getRequestDispatcher("/changepw.lg");
				rd.forward(request, response);
			}else {
				response.getWriter().write("password error");
			}
		}else if(command.equals("/changepw.lg")) {
			MemberUpdateDAO update = new MemberUpdateDAO();
			HttpSession session = request.getSession();
			String npw = request.getParameter("npw");
			String nrpw = request.getParameter("nrpw");
			String id = (String) session.getAttribute("id");
			update.updatepw(id, npw, nrpw);
			response.getWriter().write("success");
		}else if(command.equals("/delinfo.lg")) {
			HttpSession session = request.getSession();
			MemberDAO del = new MemberDAO();
			int index = Integer.parseInt(request.getParameter("id"));
			System.out.println("index : " + index);
			del.delinfo(index);
			String msgComments =  (String) session.getAttribute("id")+" 님의 상담신청번호 : "+index+" 의 예약취소가 성공적으로 완료되었습니다";
			Sens_sms_v2 sms = new Sens_sms_v2();
			sms.sendSMS(msgComments, "0"+request.getParameter("phonenNm").replace("-",""));
			response.getWriter().write("ok");
		}else if(command.equals("/delall.lg")) {
			System.out.println("delall into");
			MemberDAO del = new MemberDAO();
			HttpSession session = request.getSession();
			String id = (String) session.getAttribute("id");
			System.out.println("id : " + id);
			del.delall(id);
//			response.getWriter().write("ok");
//			session.invalidate();
			response.sendRedirect("logout.jsp");
		}else if(command.equals("/changeStatus.lg")) {
	         System.out.println("change 들어옴");
	         BoardStatus bs = new BoardStatus();
	         int num = Integer.parseInt(request.getParameter("num"));
	         bs.changeStatus(num);
	         response.getWriter().write("ok");
	      }else if(command.equals("/easylogin.lg")) {
	    	  System.out.println("easylogin 들어옴");
	    	  MemberInsertDAO easy = new MemberInsertDAO();
	    	  String id = request.getParameter("id");
	    	  String nickname = request.getParameter("nickname");
	    	  String email = request.getParameter("email");
	    	  String img = request.getParameter("img");
	    	  LoginUser check = easy.easylogin(id, email, nickname,img);
	    	  
	    	  HttpSession session = request.getSession(true);
	    	  session.setAttribute("id", check.getId());
	    	  session.setAttribute("password", check.getPassword());
	    	  session.setAttribute("email", check.getEmail());
	    	  session.setAttribute("phone", check.getPhone());
	    	  session.setAttribute("name", check.getName());
	    	  session.setAttribute("nickname", check.getNickname());
	    	  session.setAttribute("profile", check.getProfile());
	    	  session.setAttribute("joinDate", check.getJoinDate());
	    	  session.setAttribute("user", check);
	    	  response.getWriter().write("ok");
	      }

	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doProcess(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doProcess(request, response);
	}
}

 

Member Update DAO.java

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class MemberUpdateDAO {
	
	private Connection con;
	
	public MemberUpdateDAO() {
		System.out.println("it me!");
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("DRIVER LOADING.....");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/throwsgg?user=root&password=1234");
			System.out.println("Connection success!");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public boolean updateMember(String id, String nickname, String name, String email,String phone,String img) {

		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String SQL = "UPDATE member SET nickname = ? ,name = ? , phone = ? , email = ? ,profile =? WHERE id = ?";
		System.out.println(SQL);
		try {
			pstmt = con.prepareStatement(SQL);
			pstmt.setString(1, nickname);
			pstmt.setString(2, name); // ?에 들어갈 것
			pstmt.setString(3, phone);
			pstmt.setString(4, email);
			pstmt.setString(5, img);
			pstmt.setString(6, id);
			
			System.out.println("Udate : " + name + " " + phone + " " + email + " " + id+ " " +nickname + " ");
			pstmt.executeUpdate();
			System.out.println("Udate!!");

			return true;
		} catch (Exception e) {
			System.out.println("Udate fail!!");
			return false;
		}
	}
	
	public boolean updatepw(String id ,String npw, String nrpw) {
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String key = "1234";
		String SQL = "UPDATE member SET password = HEX(AES_ENCRYPT(?,?))  WHERE id = ?";
		System.out.println(SQL);
		try {
			pstmt = con.prepareStatement(SQL);
			pstmt.setString(1, npw);
			pstmt.setString(2, key); // ?에 들어갈 것
			pstmt.setString(3, id);
			
			System.out.println("Udate : " + npw + " " + id);
			pstmt.executeUpdate();
			System.out.println("Udate!!");

			return true;
		} catch (Exception e) {
			System.out.println("Udate fail!!");
			return false;
		}
		
	}
	
}

 

Member DAO.java (회원 탈퇴)

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MemberDAO {
	private Connection con;

	public MemberDAO() {
		System.out.println("it me!");
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("DRIVER LOADING.....");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/throwsgg?user=root&password=1234");
			System.out.println("Connection success!");

		} catch (Exception e) {
			e.printStackTrace();
		}
	} // 생성자



	public String idCheck(String id) {
		if (id == null || id.length() <= 4) // 아이디가 4개 이하
			return "tooshort";

		PreparedStatement pstmt = null;
		ResultSet rs = null;

		String SQL = "select id from member where id = ?";

		System.out.println("id : " + id);
		System.out.println("SQL : " + SQL);

		try {
			pstmt = con.prepareStatement(SQL);
			pstmt.setString(1, id); // ?에 들어갈 것
			rs = pstmt.executeQuery();

			if (rs.next() || id.equals("")) { // 결과가 있다면
				return "fail"; // 이미 존재하는 아이디
			} else {
				return "success"; // 가입 가능한 아이디
			}

		} catch (SQLException e) {
			e.printStackTrace();
		}
		return "fail";
	}
	
	public void delinfo(int index){
		System.out.println("index : "+index);
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String SQL = "DELETE FROM reservationtable WHERE reservationIndex=?";
		try {
			pstmt = con.prepareStatement(SQL);
			pstmt.setInt(1, index);
			System.out.println("SQL : " + SQL);
			pstmt.executeUpdate();
		}catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public void delall(String id) {
		System.out.println("id : " + id);
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String SQL = "DELETE FROM member WHERE id=?";
		try {
			pstmt = con.prepareStatement(SQL);
			pstmt.setString(1, id);
			System.out.println("SQL : " + SQL);
			pstmt.executeUpdate();
		}catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	
	


}