자바/스프링

Zara) 아이디, 비밀번호 찾기 페이지 만들기

초보개발자뀨 2021. 6. 1. 14:19

우선 아이디 ,비밀번호 찾기의 과정은

->사용자가 계정찾기로 접근 -> 계정 찾는 페이지 보여주기 -> 아이디 : 이름,전화번호 비밀번호 : 아아디,이름,전화번호를 입력 -> ajax로 아이디,비밀번호값 찾아서 alert창으로 띄워주기

로 설계했습니다.

 

우선 페이지를 만들어야겠죠

 

findAccount.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title>회원가입</title>
    
    <!--  부트 스트랩 부분 -->
	<%@include file="../../include/boot-head.jspf" %>

	<style type="text/css">
	
		#logo {
			width: 100px;
			height: 60px;
		}
		
		.btn-user {
			margin-left : 830px;
			width: 500px;
		}
		.main {
			display: flex;
			height: 800px;
			width:70%;
			flex-direction: column;
			margin: auto;
		}
		.find_form {
			display: flex;
			flex-direction: row;
			height: 400px;
			justify-content: space-between;
		}
		.find_form form {
			padding :15px;
			background-color: gray;
			color: white;
		}
		.find_form label {
			width: 100px;
		}
		.find_form li {
			list-style: none;
		}
		
	</style>
</head>

<body id="page-top">

    <!-- Page Wrapper -->
    <div id="wrapper">
		<%@include file="../../include/sidemenu.jspf" %>
        <!-- Content Wrapper -->
        <div id="content-wrapper" class="d-flex flex-column">

            <!-- Main Content -->
            <div id="content">
                <!-- Toolbar -->
				<%@include file="../../include/toolbar.jspf" %>
            	
       			<div class="main">
       			
       				<h1>ID/PW 찾기</h1>
       				
       				<div class="find_form">
       				
       					<form action="" method="Post">
       						<ul>
       							<li>
       								<h3>ID 찾기</h3>
       							</li>
       							<li>
       								<label>이름</label>
       								<input id="id_name" required="required" name="name" placeholder="이름을 입력해주세요.">
       							</li>
       							<li>
       								<label>전화번호</label>
       								<input id="id_tel"  required="required" name="tel" type="tel" placeholder="전화번호를 입력해주세요.">
       							</li>
       							<li>	
       								<button id="findId" type="button" class="btn btn-info">찾기</button>
       							</li>
       						</ul>
       					</form>
       					
       					<form action="/user/findPassword" method="Post">
       						<ul>
       							<li>
       								<h3>비밀번호 찾기</h3>
       							</li>
       							<li>
       								<label>아이디</label>
       								<input id="pass_id" required="required" name="id" placeholder="아이디를 입력해주세요.">
       							</li>
       							
       							<li>
       								<label>이름</label>
       								<input id="pass_name" required="required" name="name" type="text" placeholder="이름를 입력해주세요.">
       							</li>
       							
       							<li>	
       								<label>전화번호</label>
       								<input id="pass_tel"  required="required" name="tel" type="tel" placeholder="전화번호를 입력해주세요.">
       							</li>
       							
       							<li>	
       								<button id="findPassword" type="button" class="btn btn-info">찾기</button>
       							</li>
       						</ul>
       					</form>
       				</div>
       			</div>
            </div> 
     
        </div> 
            
              <!-- End of Toolbar -->
    </div>
    <!-- End of Page Wrapper -->
	
	<!-- 부트스트랩 js 부분 -->
	<%@include file="../../include/boot-footer.jspf" %>
	
	<script>
	var btn_findId = document.getElementById('findId');
	var btn_findPassword = document.getElementById('findPassword');

	btn_findId.addEventListener('click',function() {
		
        $.ajax({
            url : "/user/findId",
            type : "post",
            dataType : 'text',
            data : {
                name : $('#id_name').val() ,
               	tel : $('#id_tel').val()
            },
            success : function(result) {
            
    			console.log(result);
            	
            	if(result =="") {
    				alert("정보를 다시 입력해주세요!");
    				location.reload();
    			}
    			
 				else {
                    alert("아이디는 : "+result+" 입니다");
                    location.reload();
    			} 
    			


            },
            error : function(xhr,status,error) {
                console.log(error);
                console.log(xhr);
                console.log(status);
            }
        });	
	});
	
	
	btn_findPassword.addEventListener('click',function() {
		
        $.ajax({
            url : "/user/findPassword",
            type : "post",
            dataType : 'text',
            data : {
            	id : $('#pass_id').val(),
                name : $('#pass_name').val() ,
               	tel : $('#pass_tel').val()
            },
            success : function(result) {
            	
    			if(result =="") {
    				alert("정보를 다시 입력해주세요!");
    				location.reload();
    			}
    			
    			else {
                    alert("비밀번호는 : "+result+" 입니다");
                    location.reload();
    			}

	
            },
            error : function(xhr,status,error) {
                console.log(error);
                console.log(xhr);
                console.log(status);
            }
        });	
	});
	
	
	
	
	
	</script>

</body>



</html>

 

MemberController.java

	// ID 및 Password 찾는 페이지 보여주기
	@RequestMapping(path = "/find", method=RequestMethod.GET)
	public String findAccount() {
			
		return "user/findAccount";
	}
	
	// ID 찾기
	@RequestMapping(path = "/findId", method=RequestMethod.POST)
	@ResponseBody
	public List<String> findId(@RequestParam Map<String,Object> param) {
		return memberService.findId(param);
	}
	
	// 비밀번호 찾기
	@RequestMapping(path = "/findPassword", method=RequestMethod.POST)
	@ResponseBody
	public String findPassword(@RequestParam Map<String,Object> param) {
		return memberService.findPassword(param);
	}

 

MemberService.java

	public List<String> findId(Map<String,Object> param);
	public String findPassword(Map<String,Object> param);

MemberServiceImpl.java

	@Override
	public List<String> findId(Map<String, Object> param) {
		
		return memberMapper.findId(param);
	}

	@Override
	public String findPassword(Map<String, Object> param) {
		// TODO Auto-generated method stub
		return memberMapper.findPassword(param);
	}

MemberMapper.java

	public List<String> findId(Map<String,Object> param);
	public String findPassword(Map<String,Object> param);

MemberMapper.xml

	<!--  아이디 찾기 -->
	<select id="findId" parameterType="map" resultType="String">
		select mem_id from member where mem_name =#{name} and mem_tel = #{tel}
	
	</select>
	<!-- 비밀번호 찾기 -->
	<select id="findPassword" parameterType="map" resultType="String">
		select mem_password from member where mem_id =#{id} and mem_name = #{name} and mem_tel = #{tel} 
	</select>