반응형
//회원 탈퇴
public int delete(String id) {
String sql = "delete from users where id = ? ";
int result = 0;
try {
conn = DriverManager.getConnection(URL,UID,UPW);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
result = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
finally {
JDBCUtil.close(conn, pstmt, rs);
}
return result;
}
우선 DAO에 DELETE 메서드를 생성해준다. 후에 SERVICE에 DELETE메서드를 생성하여 기존 로그인이 되어있는 회원의 ID를 Session을 사용하여 받아준다.
@Override
public int delete(HttpServletRequest request, HttpServletResponse response) {
//id가 필요
HttpSession session = request.getSession();
String id = (String)session.getAttribute("user_id");
String pw = request.getParameter("pw");
int result = 0;
UserVO vo = dao.login(id,pw);
if(vo != null) {
result = dao.delete(id);
}
if(result==1) {//삭제성공
session.invalidate();
}
return result;
}
아래와 같이 delete페이지를 만들어서 비밀번호를 입력하여 기존 정보와 동일할 경우에만 삭제할 수 있도록 처리해준다.
login 메서드를 활용해서 값이 있다면 삭제를 할 수 있게 처리해준다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="../include/header.jsp"%>
<section>
<div align="center">
<form action="deleteForm.user" method="post">
<input type="password" name="pw" placeholder="비밀번호" ><br>
<input type="submit" value="탈퇴">
</form>
</div>
</section>
<%@include file="../include/footer.jsp"%>
case "/user/deleteForm.user" :
int result3 = service.delete(request, response);
if(result3 == 1) {
response.sendRedirect(path + "/index.main");
}else {
response.sendRedirect("user_delete.user");
}
break;
case "/user/user_delete.user":
request.getRequestDispatcher("user_delete.jsp").forward(request, response);
break;
default:
break;
}
}
만약 삭제가 성공된다면 메인 페이지로 이동이 되고, 실패한다면 다시 삭제 페이지로 이동한다.
반응형
'통합' 카테고리의 다른 글
MVC2 게시판 리스트 출력하기 55일차 22.12.07 (0) | 2022.12.07 |
---|---|
MVC2 게시판 글 생성하기 54일차-3 22.12.06 (0) | 2022.12.06 |
54일차-1 22.12.06 사용자 정보 수정 (0) | 2022.12.06 |
54일차-1 22.12.06 홈페이지 로그아웃 (0) | 2022.12.06 |
53일차-3 22.12.05(로그인 페이지 만들기) SQL, JAVA, JSP (0) | 2022.12.05 |
댓글