로그인 - yeon0517/yumyumgood2 GitHub Wiki

📌 Login


✔️ 로그인

● 로그인 시 Ajax를 사용하여 비동기 방식으로 DB에 저장된 ID와 PW를 가져와
사용자가 입력한 값과 비교해서 값이 일치할 때 로그인 허용 ● 아이디 저장 체크 박스를 체크하고 로그인 저장하는 Cookie 생성
● 로그인 성공 시 Session 생성 및 메인 페이지로 이동

💻 code

유저 DAO
public class UserDAO {

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

	public void join(UserDTO userDTO) {
		sqlSession.insert("user.join", userDTO);
	}

	public int login(UserDTO userDTO) {
		return sqlSession.selectOne("user.login", userDTO);	
	}
	
	public String getUserId(int userNumber) {
		return sqlSession.selectOne("user.getUserId" , userNumber);
	}
	 
	 public boolean checkId(String userId) {
		 return (Integer)sqlSession.selectOne("user.checkId",userId) <1;
	 }
	 
	 public String findPassword(UserDTO userDTO) {
		 return sqlSession.selectOne("user.findPassword",userDTO) ;
	 }
	 
	 public ProfileEditVO selectMemberProfileInfo(int userNumber) {
		   return sqlSession.selectOne("user.selectMemberProfileInfo",userNumber);
	   }
	 
//	 public ProfileEditVO getProfileInfo(int userNumber) {
//		   return sqlSession.selectOne("user.getProfileInfo",userNumber);
//	   }
	 public void delete(int userNumber) {
			sqlSession.delete("user.delete",userNumber);
		}
	 public UserVO getProfileInfo(int userNumber) {
			return sqlSession.selectOne("user.getProfileInfo", userNumber);	
		}
	
}
로그인 컨트롤러
  public class LoginOkController implements Execute {
      	@Override
	public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		UserDAO userDAO = new UserDAO();
		UserDTO userDTO = new UserDTO();
		int userNumber = 0;
		req.setCharacterEncoding("utf-8");
		
		
		String userId = req.getParameter("userId");
		String userPassword = req.getParameter("userPassword");
		String remember = req.getParameter("remember");
		
		String path = null;
		HttpSession session = req.getSession();
		
		userDTO.setUserId(userId);
		userDTO.setUserPassword(userPassword);

		
		try {
			userNumber = userDAO.login(userDTO);

			path = "/mainOk.m"; //마이페이지 경로잡기

			session.setAttribute("userNumber", userNumber);
		} catch (NullPointerException e) {
			path = "/user/login.us?login=fail"; 
//			e.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		}
		
		System.out.println(remember);
		System.out.println(userId);
		

//           쿠키

		if(remember != null) {
			Cookie cookie= new Cookie("userId" , userId);
			cookie.setMaxAge(60*60*24);
			resp.addCookie(cookie);
		}
		

//		System.out.println(userDAO.login(userDTO));
//		resp.sendRedirect("/user/login.us");
		resp.sendRedirect(path);
		System.out.println("오류");
		
	
	}
  }

📷 View

로그인

로그인


✔️ PW 찾기

● 회원 가입할 때 작성한 이메일과 핸드폰 번호를 DB에서 가져와서 사용자가 입력한 값과 비교를 해서 값이 일치할 때 사용자의 PW를 보여준다.

💻 code

패스워드 찾기 컨트롤러
public class FindPasswordOkController implements Execute {
    @Override
    public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        UserDAO userDAO = new UserDAO();
        UserDTO userDTO = new UserDTO();

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=utf-8");

        userDTO.setUserPhoneNumber(req.getParameter("userPhoneNumber"));
        userDTO.setUserEmail(req.getParameter("userEmail"));

        
         String password = userDAO.findPassword(userDTO);
        System.out.println(password);
        PrintWriter out = resp.getWriter();
        
        

        password = password == null ? "0" : password;
        
        out.print(password);
        out.close();
        
        

    }
}
  

📷 View

패스워드 찾기

비밀번호

⚠️ **GitHub.com Fallback** ⚠️