일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 건담
- jsp
- rails7
- 인프런
- 반다이몰
- 日本語
- springboot
- CSS
- 単語
- ruby
- 연습문제
- 자바
- java
- Flutter
- vscode
- 건담베이스
- javascript
- 디지몬
- 비즈니스일본어
- 일본어
- DART
- nico
- Spring
- rails
- Python
- Web
- メソッド
- 一日一つメソッド
- html
- C로 시작하는 컴퓨터 프로그래밍4판
Archives
- Today
- Total
AR삽질러
JSP 개인프로젝트(6) - 회원탈퇴 본문
728x90
https://arang95.tistory.com/42
지난시간에는 로그인, 회원가입, 회원수정, 로그아웃 까지 구현하였고
이번시간에는 회원탈퇴를 삽질해볼시간이다.
DAO :
VO : MemberVO
JSP :
회원탈퇴기능
- 회원탈퇴기능은 로그인화면에서 회원탈퇴로 들어가면 비밀번호로 본인인증 후 입력한 회원정보와 일치하면 회원탈퇴가 되도록 구현. 회원탈퇴 버튼을 누르고 본인인증 비밀번호가 true면 정상처리 false면 정보오류로 비밀번호 불일치를 띄워준다. 그리고 취소를 누르게 되면 회원탈퇴가 취소되므로 다시 메인페이지로 돌아간다.
1. deleteForm 회원탈퇴폼
회원로그인후 탈퇴 -> 아이디는 나오고 비밀번호 입력창 추가
script 비밀번호를 입력하지않고 회원탈퇴 클릭시 경고창 추가
<%
String id = (String)session.getAttribute("id");
MemberVO vo = dao.getMember(id);
%>
<nav class="navbar navbar-default">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
aria-expanded="false">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="main.jsp">AR 웹페이지</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="main.jsp">메인</a>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false"><%=id %>님 환영합니다.<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="logoutAction.jsp">로그아웃</a></li>
<li><a href="modifyForm.jsp">회원정보수정</a></li>
<li><a href="deleteForm.jsp">회원탈퇴</a></li>
</ul>
</li>
</ul>
</div>
</nav>
<div class="container">
<form method="post" action="deleteProc.jsp" name="delete" onsubmit="return checkPass()">
<table class="table table-bordered table-hover" style="text-align: center; border: 1px solid #ddddddd">
<thead>
<tr>
<th colspan="3"><h4>회원탈퇴</h4></th>
</tr>
</thead>
<tbody>
<tr>
<td style="width:110px;"><h5>아이디</h5></td>
<td><h5><%=vo.getId() %></h5>
<input type="hidden" name="id" value="vo.getId()%>"></td>
</tr>
<tr>
<td style="width:150px;"><h5>비밀번호입력 : </h5></td>
<td colspan="3"><input class="form-control" id="userPassword1" type="password" name="pass" maxlength="20" placeholder="비밀번호를 입력하세요."></td>
</tr>
<tr>
<td colspan="2" align="center">
<input class="btn btn-primary" type="button" value="회원탈퇴" onClick="inputCheck()"/>
<input class="btn btn-primary" type="reset" value="취소" onclick="javascript:window.location='main.jsp'">
</td>
<td style="text-align: left;" colspan="3"><h5 style="color: red;" id="passwordCheckMessage"></h5>
</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>
2. deleteMember
회원가입의 결과를 1 or -0로 받아 성공시 1 실패시 0으로 구현한다.
로그인된 회원아이디를 검색해 해당 아이디와 db에 저장된 비밀번호를 확인해서 일치하는지 확인한다.
public int deleteMember(String id, String pass) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String dbPass = ""; // db에 저장된 비밀번호
int result = -1;
try {
conn = getConnection();
pstmt = conn.prepareStatement("select pass from member where id=? ");
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if(rs.next()) {
dbPass = rs.getString("pass");
if(dbPass.equals(pass)) {
pstmt = conn.prepareStatement("delete from member where id = ?");
pstmt.setString(1, id);
pstmt.executeUpdate();
result = 1; // 회원탈퇴 성공
}else {
result = 0;
}
}
}catch(Exception e) {
e.printStackTrace();
}finally {
if(rs!= null)try {rs.close();}catch(SQLException e) {}
if(pstmt!= null)try {pstmt.close();}catch(SQLException e) {}
if(conn!= null)try {conn.close();}catch(SQLException e) {}
}
return result;
}
3. deleteProc 회원탈퇴완료폼
회원탈퇴클릭시 비밀번호 불일치나 미입력시 경고창 추가
아이디.equlse(비번)일시 성공적으로 invalidate() 된뒤 클릭하면 다시 메인화면으로 돌아간다.
<meta charset="UTF-8">
<title>회원탈퇴 완료</title>
<link href="style.css" rel="stylesheet" type="text/css">
<%
String id = (String)session.getAttribute("id");
String pass = request.getParameter("pass");
int flag = dao.deleteMember(id, pass);
if(flag == 1){
session.invalidate();
%>
<body bgcolor="#FFFFCC">
<center>
<font size="5" face="바탕체">
<br><h3>회원탈퇴가 되었습니다.</h3>
<h3>그동안 ARService를 이용해주셔서 감사합니다.</h3>
<a href=main.jsp>ARService</a>
</font>
</center>
<%}else{ %>
<script type="text/javascript">
alert("비밀번호가 일치하지 않습니다!");
history.go(-1);
</script>
<%} %>
</body>
</html>
4. 구현영상
다음시간에는 지금까지 구현한 코드들을 깔끔하게 수정하고 다른 창을 열어도 하나의 객체만 생성할 수 있도록 구현해보고 게시판을 만들어보겠다.
728x90
반응형
LIST
'JAVA > JSP' 카테고리의 다른 글
JSP 개인프로젝트(8) - 게시판만들기(게시글목록) (0) | 2023.02.28 |
---|---|
JSP 개인프로젝트(7) - singleton적용, 게시판만들기 (0) | 2023.02.28 |
JSP 개인프로젝트(5) - 회원정보수정 (0) | 2023.02.17 |
JSP 개인프로젝트(4) - 회원가입완성, 로그인구현 (0) | 2023.02.16 |
JSP 개인프로젝트(3) - 로그인, 회원가입 (0) | 2023.02.05 |