내가 구현한 기능 소개(ID. PW찾기) - KimByoungKoo/NewLightProject GitHub Wiki

📌Member

✔️ ID찾기

  • 회원 가입할 때 작성한 회원의 이름, 휴대폰 번호를 DB에서 저장된 값과 사용자가 입력한 값을 비교하여 일치하면 사용자의 ID를 보여준다.

💻Code

MemberForontController.java
public class MemberFrontController extends HttpServlet {

   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doProcess(req, resp);
   }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doProcess(req, resp);
   }

   private void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

      String target = req.getRequestURI().substring(req.getContextPath().length());
      System.out.println(target);

      switch (target) {
      // 회원 ID찾기
      case "/member/memberFindId.me":
         new FindIdController().execute(req, resp);
         break;
      }
  }
FindIdOkController.java
public class FindIdOkController implements Execute {

	@Override
	public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
		MemberDAO memberDAO = new MemberDAO();
		MemberDTO memberDTO = new MemberDTO();
		String path = null;


		String[] phoneArr = req.getParameterValues("memberPhoneNumber");
		String phoneNumber = "";
		for (int i = 0; i < phoneArr.length; i++) {
			phoneNumber += phoneArr[i];
		}


		memberDTO.setMemberName(req.getParameter("memberName"));
		memberDTO.setMemberPhoneNumber(phoneNumber);

		String memberId = memberDAO.findId(memberDTO);

		if (memberId == null) {
			path = "/app/member/findId.jsp";
			req.setAttribute("success", "fail");
		} else {
			path = "/app/member/findId2.jsp";
			req.setAttribute("memberId", memberId);
		}

		req.getRequestDispatcher(path).forward(req, resp);

	}

}

</div>
</details>

<details>
<summary>MemberDAO.java</summary>
<div markdown="1">

```java
public class MemberDAO {

   public SqlSession sqlSession;

   public MemberDAO() {
      sqlSession = MyBatisConfig.getSqlSessionFactory().openSession(true);
   }

//   Id찾기
   public String findId(MemberDTO memberDTO) {
      return sqlSession.selectOne("member.findId", memberDTO);
   }
   
}
MemberDAO.java
public class MemberDAO {
   public SqlSession sqlSession;
   
   public MemberDAO() {
      sqlSession = MyBatisConfig.getSqlSessionFactory().openSession(true);
   }
   
//   Id찾기
   public String findId(MemberDTO memberDTO) {
      return sqlSession.selectOne("member.findId", memberDTO);
   }
MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">

 <!-- ID 찾기 -->
   <select id="findId" parameterType="MemberDTO" resultType="string">
      select member_id from `member` m 
      where member_name = #{memberName} and member_phonenumber = #{memberPhoneNumber}
   </select>
   <!--  -->

</mapper>

📷View

ID 찾기
newlight_아이디 찾기01 newlight_아이디 찾기02 newlight_아이디 찾기03

✔️ PW찾기

  • 회원 가입할 때 작성한 회원의 이름, 회원 ID, 휴대폰 번호를 DB에 저장된 값과 사용자가 입력한 값을 비교하여 일치하면 사용자의 PW를 보여준다.

💻Code

MemberFrontController.java
public class MemberFrontController extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doProcess(req, resp);
   }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doProcess(req, resp);
   }

   private void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   String target = req.getRequestURI().substring(req.getContextPath().length());

   switch (target) {

      // 회원 PW찾기
      case "/member/memberFindPw.me":
         new FindPwController().execute(req, resp);
         break;
      }
  }
FindPwOkController.java
public class FindPwOkController implements Execute{
	
	@Override
	public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
		MemberDTO memberDTO = new MemberDTO();
		MemberDAO memberDAO = new MemberDAO();
		String path = null;
		
		String[] phoneArr = req.getParameterValues("memberPhoneNumber");
		String phoneNumber = "";
		for(int i=0; i<phoneArr.length; i++) {
			phoneNumber += phoneArr[i];
		}
		
		memberDTO.setMemberName(req.getParameter("memberName"));
		memberDTO.setMemberId(req.getParameter("memberId"));
		memberDTO.setMemberPhoneNumber(phoneNumber);
		
		String memberPw = memberDAO.findPw(memberDTO);
		
		if(memberPw == null) {
			path = "/app/member/findPw.jsp";
			req.setAttribute("success", "fail");
		}else {
			path = "/app/member/findPw2.jsp";
			req.setAttribute("memberPw", memberPw);
		}
		
		req.getRequestDispatcher(path).forward(req, resp);
	}

}
MemberDAO
public class MemberDAO {
   public SqlSession sqlSession;
   
   public MemberDAO() {
      sqlSession = MyBatisConfig.getSqlSessionFactory().openSession(true);
   }
//   pw찾기
   public String findPw(MemberDTO memberDTO) {
      return sqlSession.selectOne("member.findPw", memberDTO);
   }
}
MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">

   <!-- PW 찾기 -->
   <select id="findPw" parameterType="MemberDTO" resultType="string">
      select member_password  from `member` m 
      where member_id = #{memberId} and member_name = #{memberName} and member_phonenumber = # 
      {memberPhoneNumber}
   </select>
   <!--  -->

</mapper>

📷View

PW 찾기
newlight_비밀번호 찾기01 newlight_비밀번호 찾기02 newlight_비밀번호 찾기03
⚠️ **GitHub.com Fallback** ⚠️