로그인 - yeon0517/yumyumgood2 GitHub Wiki
● 로그인 시 Ajax를 사용하여 비동기 방식으로 DB에 저장된 ID와 PW를 가져와
사용자가 입력한 값과 비교해서 값이 일치할 때 로그인 허용
● 아이디 저장 체크 박스를 체크하고 로그인 저장하는 Cookie 생성
● 로그인 성공 시 Session 생성 및 메인 페이지로 이동
유저 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("오류");
}
}로그인

● 회원 가입할 때 작성한 이메일과 핸드폰 번호를 DB에서 가져와서 사용자가 입력한 값과 비교를 해서 값이 일치할 때 사용자의 PW를 보여준다.
패스워드 찾기 컨트롤러
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();
}
}
패스워드 찾기
