안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)
MemberDeleteController
/**
* Servlet implementation class MemberDeleteController
*/
@WebServlet("/delete.me")
public class MemberDeleteController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MemberDeleteController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
// 삭제처리시 delete문이 아닌 update문 이용.
String userPwd = request.getParameter("userPwd");
// 로그인한 회원의 정보를 얻어내는 방법.
// 방법 1. input type="hidden"으로 요청시 숨겨서 전달하는 방법.
// 방법 2. session 영역에 담겨있는 회원객체로부터 뽑아오기★
HttpSession session = request.getSession();
Member loginUser = (Member) session.getAttribute("loginUser");
String userId = loginUser.getUserId();
int result = new MemberService().deleteMember(userId, userPwd);
if(result > 0) { // 회원탈퇴 성공시 => 로그아웃처리
session.setAttribute("alertMsg", "성공적으로 회원탈퇴 되었습니다. 그동안 이용해주셔서 감사합니다 ^^");
// invalidate()메소드를 사용시 세션이 만료되어서 alert이 되지 않는다
// removeAttribute를 이용하여 현재 로그인한 사용자의 정보를 지워주는 방식으로 로그아웃 시키기.
session.removeAttribute("loginUser");
response.sendRedirect(request.getContextPath());
}else { //실패시 => 에러머세지+에러페이지로 포워딩
request.setAttribute("errorMsg", "회원 탈퇴에 실패했습니다");
request.getRequestDispatcher("views/common/errorPage.jsp").forward(request, response);
}
// 실패시 => 에러페이지로 포워딩
// 에러메세지 : 회원탈퇴에 실패했습니다.
// 성공시 => 메인페이지 url재요청
// 성공메세지 : 성공적으로 회원탈퇴 되었습니다. 그동안 이용해주셔서 감사합니다 ^^
// session에 저장된 회원정보 제거.
}
MemberService
public int deleteMember(String userId, String userPwd) {
Connection conn = getConnection();
int result = new MemberDao().deleteMember(conn, userId, userPwd);
if(result > 0) {
commit(conn);
}else {
rollback(conn);
}
close(conn);
return result;
}
MemberDao
public int deleteMember(Connection conn, String userId, String userPwd) {
int result = 0;
PreparedStatement pstmt = null;
String sql = prop.getProperty("deleteMember");
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
pstmt.setString(2, userPwd);
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(pstmt);
}
return result;
}
member-mapper.xml
<entry key="deleteMember">
UPDATE MEMBER
SET STATUS = 'N' ,
MODIFY_DATE = SYSDATE
WHERE USER_ID = ?
AND USER_PWD = ?
</entry>
'⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆ > JSP' 카테고리의 다른 글
[JSP] JSTL Core Library - 1. 변수(속성) (+ JSTL Core Tag의 종류) (0) | 2023.07.28 |
---|---|
JSP - JSP와 스크립틀릿, 내장객체 종류 (0) | 2023.07.12 |
이클립스 Servlet (doPost 방식-updatePwd) (0) | 2023.07.05 |
이클립스 Servlet (doPost 방식-update) (0) | 2023.07.05 |
이클립스 Servlet (doPost 방식-insert) (0) | 2023.07.05 |