반응형
내 정보 수정하기 기능 처럼, 내 정보 삭제하기 기능도 내 정보보기 에서 확인할 수 있도록 구현할 것이다.
메서드를 하나만 사용해 바로 삭제할 수 있지만, 이번에는 메서드를 두개 사용해 탈퇴 의사를 다시 한번 물어볼 것이다.
myinfo.jsp
내 정보보기 jsp파일에서 탈퇴하기 링크를 한 줄 추가해준다.
<a href = "/webApp2/Delete?id=${m.id }">탈퇴하기</a>
?id=${m.id } 는 해당 사람의 정보를 보내준다.
Delete.java
myinfo.jsp 에서 연결해준 Delete.java의 get에서 삭제 확인 창인 delete.jsp 로 연결해준다.
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String id = request.getParameter("id");
request.setAttribute("id", id); //myinfo의 아이디 받아오기
//
RequestDispatcher dis = request.getRequestDispatcher("/member/delete.jsp");
dis.forward(request, response);
}
delete.jsp
클라이언트의 탈퇴 의사를 다시 확인해준다.
탈퇴를 누르면 탈퇴가 진행되도록, No를 누르면 다시 내 정보보기 페이지로 돌아간다.
탈퇴를 누르면 Delete 페이지의 post method로 이동하도록 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>탈퇴하시겠습니까?</h3>
<form action = "/webApp2/Delete" method = "post">
<table border = "0">
<tr><th> <form action="/webApp2/Delete" method="post">
<input type = "hidden" name = "id" value = "${id }">
<input type = "submit" value ="탈퇴"> </th>
<td><a href = "/webApp2/Editmyinfo?id=${id }"><input type = "button" name = "delete" value = "No"></a> </td></tr>
</table>
</form>
</body>
</html>
Delete.java
Delete.java 서블릿 페이지의 doPost이다.
아이디를 받아와 멤버 서비스를 이용할 수 있도록 멤버 객체를 생성한 후, 삭제 서비스를 입력한다.
이후 다시 초기 화면으로 돌아오도록 Redirect 코드를 사용하였다.
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String id = request.getParameter("id"); //delete.jsp의 hidden의 id 받아오는 것.
MemberService service = new MemberService();
service.delMember(id);
response.sendRedirect("/webApp2/index.jsp");
}
반응형