Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 페이징
- forward
- 국비학원
- 입력메소드
- 회원정보수정
- 별찍기
- 인코딩
- 비밀번호암호화
- 내배카
- jdbc환경설정
- 로그아웃
- github
- 정처기
- redirect
- 국취제
- 검색기능
- 배열
- emmet환경설정
- jsp기본
- Git
- live server 환경설정
- mvc
- 관리자회원조회
- 권한변경
- 국민취업지원제도
- 비밀번호변경
- 회원탈퇴
- 내일배움카드
- 페이지 재사용
- jdbc설정
Archives
- Today
- Total
기록
*77일차 실습 본문
@회원탈퇴
package member.controller;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import member.model.service.MemberService;
/**
* Servlet implementation class MemberDeleteServlet
*/
@WebServlet("/member/memberDelete")
public class MemberDeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private MemberService memberService = new MemberService();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
//1. 사용자 입력값 처리
String memberId = request.getParameter("memberId");
//2. 서비스로직호출
int result = memberService.deleteMember(memberId);
// 탈퇴후처리 - 세션폐기, 쿠키폐기
Cookie cookie = new Cookie("saveId", memberId);
cookie.setPath(request.getContextPath());
cookie.setMaxAge(0); // 응답을 받은 즉시 삭제
response.addCookie(cookie);
// 모든 세션속성 제거 (session.invalidate() 대신)
HttpSession session = request.getSession();
Enumeration<String> names = session.getAttributeNames();
while(names.hasMoreElements()) {
String name = names.nextElement();
session.removeAttribute(name);
}
//3. 리다이렉트 처리
session.setAttribute("msg", "탈퇴가 성공적으로 처리되었습니다. 감사합니다.");
response.sendRedirect(request.getContextPath() + "/");
// response.sendRedirect(request.getContextPath() + "/member/logout");
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
public int deleteMember(String memberId) {
int result = 0;
// 1. Connection객체 생성
Connection conn = getConnection();
try {
// 2. dao 요청
result = memberDao.deleteMember(conn, memberId);
// 3. 트랜잭션 처리
commit(conn);
} catch (Exception e) {
rollback(conn);
throw e; // controller 통보용
} finally {
// 4. Connection객체 반환
close(conn);
}
return result;
}
<form
name="memberDelFrm"
action="<%= request.getContextPath() %>/member/memberDelete"
method="POST">
<input type="hidden" name="memberId" value="<%= loginMember.getMemberId() %>" />
</form>
<script>
const deleteMember = () => {
if(confirm("정말로 탈퇴하시겠습니까?")){
document.memberDelFrm.submit();
}
}