내가 구현한 기능 소개(ID. PW찾기) - KimByoungKoo/NewLightProject GitHub Wiki
- 회원 가입할 때 작성한 회원의 이름, 휴대폰 번호를 DB에서 저장된 값과 사용자가 입력한 값을 비교하여 일치하면 사용자의 ID를 보여준다.
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>ID 찾기
- 회원 가입할 때 작성한 회원의 이름, 회원 ID, 휴대폰 번호를 DB에 저장된 값과 사용자가 입력한 값을 비교하여 일치하면 사용자의 PW를 보여준다.
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>PW 찾기