Flaming Soccer ball
통합

MVC2 사용자 삭제 54일차-2 22.12.06

leo lee 2022. 12. 6.
반응형
//회원 탈퇴
	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;
		}
	}

만약 삭제가 성공된다면 메인 페이지로 이동이 되고, 실패한다면 다시 삭제 페이지로 이동한다.

반응형

댓글