Cohe

JSP mini project : mypage 실습5 - 회원 정보 수정(2) 본문

개발 언어/JSP

JSP mini project : mypage 실습5 - 회원 정보 수정(2)

코헤0121 2024. 4. 15. 18:13
728x90

비밀번호 변경과 관련하여, 비밀번호를 변경하려면 우선, 현재의 비밀번호와 이전에 저장되어 있는 비밀번호가 일치해야 하는지 확인하고, 일치한 경우에서야 비밀번호 변경을 허가해줘야한다.

change_pw.jsp


<%@page import="com.myweb.user.model.UserVO"%>
<%@page import="com.myweb.user.model.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<%
    String id = (String)session.getAttribute("user_id");

    if(id ==null){
        response.sendRedirect("user_login.jsp");
    }

%>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Welcome to MyWorld</title>

    <!-- Bootstrap Core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="../css/business-casual.css" rel="stylesheet">

    <!-- Fonts -->
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
    <link href="https://fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic" rel="stylesheet" type="text/css">
</head>
<body>
    <%@include file="../include/header.jsp" %>
    <section>
        <div class="container">
            <div class="row">
                <div class="col-md-6 col-md-offset-3">
                    <form name = "regform" class="form-horizontal" action="user_change_pw_ok.jsp" method="post">
                        <h2 class="text-center">비밀번호 수정 페이지</h2>
                        <hr>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">현재 비밀번호</label>
                            <div class="col-sm-9">
                                <input type="text" class="form-control" name="old_pw">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">새 비밀번호</label>
                            <div class="col-sm-9">
                                <input type="password" class="form-control" name="new_pw">
                            </div>
                        </div>                        
                        <div class="form-group">
                            <div class="col-sm-offset-3 col-sm-9">
                                <button type="submit" class="btn btn-primary" >확인</button>
                                <button type="button" class="btn btn-info" onclick="history.go(-1)">마이페이지</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>
    <%@include file="../include/footer.jsp" %>
    <!-- jQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <!-- Bootstrap Core JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


</body>
</html>

user_change_pw_ok.jsp


<%@page import="com.myweb.user.model.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    String id = (String)session.getAttribute("user_id");

    if(id ==null){
        response.sendRedirect("user_login.jsp");
    }

    request.setCharacterEncoding("utf-8");

    String oldPw = request.getParameter("old_pw");
    String newPw = request.getParameter("new_pw");
    UserDAO dao = UserDAO.getInstance();
    int result = dao.login(id,oldPw);

    if(result == 0){//예전 비밀번호 실패
        %>
        <script>
        location.href="user_mypage.jsp";
        </script>

        <%        
    }else{
        int result2 = dao.changePW(id,newPw);
        if(result2==1){
            %>
            <script>
            alert("비밀번호 변경처리 되었습니다.");
            location.href="user_mypage.jsp";
            </script>

            <%
        }
        else{
            %>
            <script>
            alert("비밀번호 변경에 실패하였습니다.");
            location.href="user_mypage.jsp";
            </script>

            <%
        }

    }
%>

DAO 수정


public int changePW(String id,String pw ) {

        int result =0;
        String sql = "update users set pw=? where id=?";
        try {
            conn = ds.getConnection();
             pstmt = conn.prepareStatement(sql);
             pstmt.setString(1,pw);
             pstmt.setString(2,id);
             result = pstmt.executeUpdate();

        }catch (SQLException sqle) {
             System.out.println("SQL 연동 오류");
             System.out.println(sqle.getMessage());
          }finally {
              JdbcUtil.close(conn, pstmt, rs);
          }
        return result;
    }