-
[ERMaster] shoppingmall - find ID, PWWEB/ERMaster 2022. 9. 10. 12:27
function find_account(){ var url="shop.do?command=findAccount"; var opt="toolbar=no, menubar=no, scrollbars=no, resizable=no, " +"width=700, height=500, top=300, left=300"; window.open(url , "Find Id/Pw", opt); }
else if(command.equals("findAccount")) ac=new FindAccountAction();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FindAccountAction implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url="member/findAccount.jsp"; request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> </head> <body> <center><h2>아이디 찾기 / 비밀번호 찾기</h2></center> <form> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF" height="200"> <td width="230"><h3>아이디 찾기</h3><br> <input type="button" class="submit" value="이동" onClick="location.href='shop.do?command=findIdForm'"> </td> <td width="230"><h3>비밀번호 찾기</h3><br> <input type="button" class="submit" value="이동" onClick="location.href='shop.do?command=findPwForm'"> </td> </tr> </table> </form> </body> </html>
아이디 찾기
else if(command.equals("findIdForm")) ac=new FindIdFormAction();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FindIdFormAction implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url="member/findIdForm.jsp"; request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> </head> <body> <center><h2>아이디 찾기</h2></center> <form method="post" name="frm" action="shop.do"> <input type="hidden" name="command" value="findIdStep1"> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>성명 <input type="text" name="name" value="${name}"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>전화번호 <input type="text" name="phone" value="${phone}"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3> <input type="submit"value="인증번호 전송"></h3> ${msg}</td></tr> </table> </form> </body> </html>
아이디 찾기 실행
else if(command.equals("findIdStep1")) ac=new FindIdStep1Action();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sam.shop.dao.MemberDao; import com.sam.shop.dto.MemberVO; public class FindIdStep1Action implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 이 단계에서 인증번호를 해당 휴대폰 번호에 문자로 전송하고 // 다음 페이지에서 사용자에게 입력받도록 화면을 구성 String url="member/findIdForm.jsp"; String name=request.getParameter("name"); String phone=request.getParameter("phone"); MemberDao mdao=MemberDao.getInstance(); MemberVO mvo=mdao.getMemberByname(name,phone); // 이름과 전화번호로 검색해서 일치하는 회원이 없으면 // 인증번호 입력창으로 이동 request.setAttribute("name", name); request.setAttribute("phone", phone); if(mvo==null) { request.setAttribute("msg", "해당이름과 전화번호의 회원이 없습니다"); }else { request.setAttribute("MemberVO", mvo); url="member/findIdconfirmNumber.jsp"; } request.getRequestDispatcher(url).forward(request,response); } }
MemberDao에 getMemberByname 생성
public MemberVO getMemberByname(String name, String phone) { MemberVO mvo=null; String sql="select *from member where name=? and phone=?"; con = Dbman.getConnection(); try { pstmt = con.prepareStatement(sql); pstmt.setString(1, name); pstmt.setString(2, phone); rs=pstmt.executeQuery(); if(rs.next()) { mvo=new MemberVO(); mvo.setId(rs.getString("id")); mvo.setName(rs.getString("name")); mvo.setPhone(rs.getString("phone")); } } catch (SQLException e) { e.printStackTrace(); } finally { Dbman.close(con, pstmt, rs); } return mvo; }
인증번호 입력 페이지
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> </head> <body> <h2>ID 찾기</h2> <form method="post" name="frm" action="shop.do"> <input type="hidden" name="command" value="findIdStep2"> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>성명: ${name }</h3> <input type="hidden" name="name" value="${name}"> </td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>전화번호: ${phone }</h3> <input type="hidden" name="phone" value="${phone}"> <input type="hidden" name="id" value="${MemberVO.id }"> </td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>인증번호 <input type="text" name="confirmNum"></h3> 전송받을 번호를 입력하세요<br>${msg }<br> <input type="submit" value="인증번호 확인"></h3> </td></tr> </table> </form> </body> </html>
인증번호 확인
else if(command.equals("findIdStep2")) ac=new FindIdStep2Action();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sam.shop.dto.MemberVO; public class FindIdStep2Action implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String confirmNum=request.getParameter("confirmNum"); MemberVO mvo=new MemberVO(); mvo.setId(request.getParameter("id")); mvo.setName(request.getParameter("name")); mvo.setPhone(request.getParameter("phone")); request.setAttribute("name", mvo.getName()); request.setAttribute("phone", mvo.getPhone()); request.setAttribute("id", mvo.getId()); request.setAttribute("MemberVO", mvo); String url="member/viewId.jsp"; if(!confirmNum.equals("0000")) { request.setAttribute("msg", "인증번호가 맞지 않습니다"); url="member/findIdconfirmNumber.jsp"; } request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> <script src="member/member.js"></script> </head> <body> <center><h2>아이디 찾기</h2></center> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>성명: ${name} </td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>전화번호: ${phone } </td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"> <h3>조회한 회원의 아이디는 ${id}입니다</h3> <input type="button" class="submit" value="로그인창으로" onClick="move_login();"> <input type="button" class="submit" value="비밀번호찾기" onClick="location.href='shop.do?command=findPwForm$id=${id}'"> </td></tr> </table> </body> </html>
function move_login(){ opener.location.href='shop.do?command=loginForm'; self.close(); }
비밀번호 찾기
else if(command.equals("findPwForm")) ac=new FindPwFormAction();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FindPwFormAction implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url="member/findPwForm.jsp"; request.setAttribute("id", request.getParameter("id")); request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> </head> <body> <h2>비밀번호 찾기</h2> <form method="post" name="frm" action="shop.do"> <input type="hidden" name="command" value="findPwStep1"> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>아이디 <input type="text" name="id" value="${id}"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>성명 <input type="text" name="name" value="${name }"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3>전화번호 <input type="text" name="phone" value="${phone }"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"> <td width="430"><h3> <input type="submit" name="phone" value="인증번호 전송"> </h3>${msg}</td></tr> </table> </form> </body> </html>
비밀번호 찾기 실행
else if(command.equals("findPwStep1")) ac=new FindPwStep1Action();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sam.shop.dao.MemberDao; import com.sam.shop.dto.MemberVO; public class FindPwStep1Action implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 아이디 이름 전화로 조회한 회원이 있으면 // 인증번호 입력창으로 // 없으면 다시 이름 전화 아이디 입력 창으로 이동 String id=request.getParameter("id"); String name=request.getParameter("name"); String phone=request.getParameter("phone"); MemberDao mdao=MemberDao.getInstance(); // 아이디 이름 전화번호가 한번에 일치해야 // 검색결과가 리턴되는 메서드 생성&호출 // MemberVO mvo= // mdao.getMemberByNamePhoneId(id,name,phone); // 이 메서드는 해당 회원을 검색을 할 수는 있지만 // 정보가 틀렸을 때 // 어떤 항목이 잘못되었는지 알 수가 없음 // 이름과 전화번호로 검색해서 일치하는 회원이 없으면 // 인증번호 입력창으로 이동 String url="member/findPwForm.jsp"; request.setAttribute("id",id); request.setAttribute("name",name); request.setAttribute("phone",phone); MemberVO mvo=mdao.getMember(id); if(mvo==null){ request.setAttribute("msg", "id가 일치하지 않습니다"); } else if(!name.equals(mvo.getName())){ request.setAttribute("msg","이름이 일치하지 않습니다"); } else if(!phone.equals(mvo.getPhone())){ request.setAttribute("msg","전화번호가 일치하지 않습니다"); } else { url="member/findPwConfirmNumber.jsp"; } request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href=css/shopping.css rel="stylesheet"> </head> <body> <h2>Id/Pw 찾기</h2> <form method="post" name="frm" action="shop.do"> <input type="hidden" name="command" value="findPwStep2"> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>아이디: ${id }</h3> <input type="hidden" name="id" value="${id }"></td></tr> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>성명: ${name }</h3> <input type="hidden" name="name" value="${name }"></td></tr> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>전화번호: ${phone }</h3> <input type="hidden" name="phone" value="${phone }"></td></tr> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>인증번호: ${phone } <input type="text" name="confirmNum"></h3> 전송받을 인증번호를 입력하세요 <input type="submit" value="인증번호 확인"> </td></tr> </table> </form> </body> </html>
인증번호 확인 후
else if(command.equals("findPwStep2")) ac=new FindPwStep2Action();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FindPwStep2Action implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String confirmNum=request.getParameter("confirmNum"); String id=request.getParameter("id"); String name=request.getParameter("name"); String phone=request.getParameter("phone"); //파라미터 저장 request.setAttribute("id", id); request.setAttribute("name", name); request.setAttribute("phone", phone); // 그들을 리퀘스트에 담고 // findPwconfirmNumber.jsp로 이동하든 // resetPw.jsp로 이동하든 // 위 세개의 항목은 모두 필요하므로 리퀘스트에 담아둠 String url="member/findPwConfirmNumber.jsp"; if(confirmNum.equals("0000")) { url="member/resetPw.jsp"; } request.getRequestDispatcher(url).forward(request,response); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> <script src="member/member.js"></script> </head> <body> <h2>비밀번호 재성절</h2> <form method="post" name="frm" action="shop.do"> <input type="hidden" name="command" value="resetPw"> <input type="hidden" name="id" value="${id }"> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>비밀번호 <input type="password" name="pwd"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3>비밀번호확인 <input type="password" name="pwd_chk"> </h3></td></tr> <tr align="center" bgcolor="#FDE8FF"><td width="430"> <h3> <input type="submit" value="비밀번호 재설정" onClick="return resetPw();"> </h3></td></tr> </table> </form> </body> </html>
function resetPw(){ if( document.frm.pwd.value==""){ alert("비밀번호을 입력해 주세요"); document.joinForm.pwd.focus(); return false; }else if( document.frm.pwd.value!=document.frm.pwd_chk.value){ alert("비밀번호가 일치하지 않습니다"); document.joinForm.pwd_chk.focus(); return false; }else{ return true; } }
비밀번호 재설정
else if(command.equals("resetPw")) ac=new ResetPwAction();
package com.sam.shop.controller.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sam.shop.dao.MemberDao; import com.sam.shop.dto.MemberVO; public class ResetPwAction implements Action { @Override public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 아이디와 패스워드 전달받아서 MemberVO mvo=new MemberVO(); mvo.setId(request.getParameter("id")); mvo.setPwd(request.getParameter("pwd")); // 패스워드를 수정하고 MemberDao mdao=MemberDao.getInstance(); mdao.resetPw(mvo); // 패스워드 리셋 완료 페이지로 이동함 String url="member/resetPwComplete.jsp"; request.getRequestDispatcher(url).forward(request,response); } }
public void resetPw(MemberVO mvo) { String sql="update member set pwd=? where id=?"; con = Dbman.getConnection(); try { pstmt = con.prepareStatement(sql); pstmt.setString(1, mvo.getPwd()); pstmt.setString(2, mvo.getId()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { Dbman.close(con, pstmt, rs); } }
<%@ 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> <link href="css/shopping.css" rel="stylesheet"> <script src="member/member.js"></script> </head> <body> <h2>비밀번호 재설정 완료</h2> <table align="center" bgcolor="black" cellspacing="1" width="400"> <tr align="center" bgcolor="#FDE8FF" height="200"> <td width="230"><h3>비밀번호 재설정이 완료되었습니다</h3><br> <input type="button" value="로그인 페이지로" onClick="move_login();"> </td></tr> </table> </body> </html>
'WEB > ERMaster' 카테고리의 다른 글
[ERMaster] shoppingmall - cart (0) 2022.09.10 [ERMaster] shoppingmall - category (0) 2022.09.10 [ERMaster] shoppingmall - update (0) 2022.09.10 [ERMaster] shoppingmall - login, logout, join (0) 2022.09.10 [ERMaster] shoppingmall - main (0) 2022.09.10