Ajax방식으로 로그인을 구현하려는데 LoginController의 loginCheck함수에 id와 pw값이 안들어가는 것이였다!
loginForm.jsp
function fn_login(){
/* var userId = $("#userId").val();
var userPw = $("#userPw").val();
/**
* 아래는 localStorage를 활용한 아이디 기억을 사용하기 위함입니다.
* 아이디 저장 checkbox가 선택된 상태로 로그인 버튼을 클릭하면
* 다음 login 페이지로 접속할 시 document.ready시점에 localStorage.getItem("saveId")
* 값이 '', null, 'N' 중에 없을 시에만 id input란에 값을 넣어주면 됩니다.
**/
//var loginData = {"userId":userId, "userPw":userPw};
var userId = $('#userId').val();
var userPw = $('#userPw').val();
if(userId == ""){
alert("아이디를 입력하세요.");
$("#userId").focus(); // 입력포커스 이동
return; // 함수 종료
}
else if(userPw == ""){
alert("비밀번호를 입력하세요.");
$("#userPw").focus();
return;
}
$.ajax({
url : "loginCheck.do",
type : "POST",
data : {
userId:userId,
userPw:userPw
},
success : function(data){
if(data == "false")
alert('잘못된 아이디이거나, 비밀번호가 틀렸습니다.') ;
else
location.href="${path}/board/boardList.do" ;
}
});
}
LoginController.java
@RequestMapping(value="loginCheck.do", method=RequestMethod.POST)
// public ModelAndView loginCheck(@ModelAttribute LoginVO vo, HttpSession session)
public void loginCheck(@RequestParam("userId") String userId, @RequestParam("userPw")
String userPw, @ModelAttribute LoginVO vo,
HttpServletResponse response, HttpSession session) throws IOException {
/* boolean result = loginService.loginCheck(vo, session);
ModelAndView mav = new ModelAndView();
if (result == true) { // 로그인 성공
// main.jsp로 이동
mav.setViewName("redirect:/board/boardList.do");
mav.addObject("msg","success");
} else { // 로그인 실패
// login.jsp로 이동
mav.setViewName("login/loginForm");
mav.addObject("msg", "failure");
}
return mav;
*/
boolean result = loginService.loginCheck(vo,session);
if(result==true) {
response.getWriter().print(true) ;
} else {
response.getWriter().print(false) ;
}
}
알고보니.. LoginVO로 값을 넘겨주지 않았기 때문에 fn_login()함수가 실행이 안됐던 것!
따라서
@RequestMapping(value="loginCheck.do", method=RequestMethod.POST)
// public ModelAndView loginCheck(@ModelAttribute LoginVO vo, HttpSession session)
public void loginCheck(@RequestParam("userId") String userId, @RequestParam("userPw")
String userPw, HttpServletResponse response, HttpSession session) throws IOException {
/*
boolean result = loginService.loginCheck(vo, session);
ModelAndView mav = new ModelAndView();
if (result == true) { // 로그인 성공
// main.jsp로 이동
mav.setViewName("redirect:/board/boardList.do");
mav.addObject("msg","success");
} else { // 로그인 실패
// login.jsp로 이동
mav.setViewName("login/loginForm");
mav.addObject("msg", "failure");
}
return mav;
*/
LoginVO vo = new LoginVO();
vo.setUserId(userId);
vo.setUserPw(userPw);
boolean result = loginService.loginCheck(vo,session);
if(result==true) {
response.getWriter().print(true) ;
} else {
response.getWriter().print(false) ;
}
}
이렇게 바꿔주니 거짓말처럼 잘 실행이 됐다는.. (사실 고쳤는데 안되서 project clean이랑 Server clean 한번씩 해줬다는.. 역시 clean은 만능..!)
주석처리 되있는 코드는 원래 로그인으로 구현하려고 했던 코드입니다! ModelAndView로 메세지를 날려서 로그인처리를 하려고 했는데 이게 될때도 있고 안될때도 있어서.. 암튼 그렇습니다😒
코드는 아래 링크를 참고하였습니다!
https://doublesprogramming.tistory.com/98?category=736879
Spring - 게시판 만들기 연습 (회원 로그인, 로그아웃 구현)
Spring - 게시판 만들기 연습 (회원 로그인, 로그아웃 구현) 1. 실행화면 01) 로그인 상단메뉴 생성 02) 로그인 화면으로 이동 03) 로그인 성공시 상단에 로그인한 회원상태 메시지 출력, 로그아웃 버
doublesprogramming.tistory.com
https://kimkh0096.tistory.com/entry/Spring-Ajax%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-login
Spring : Ajax를 이용한 login
- 데이터베이스 유저 기본 테이블 : MEMBER 프로필 사진 테이블 : IMAGE (POST_NO[게시글 번호]가 null인 행 중 USER_ID에서 해당되는 값을 찾으면 됩니다.) MEMBER와 IMAGE를 조인하였기에 적당한 더미데이터
kimkh0096.tistory.com
그럼 다음 포스팅으로 돌아오겠습니당 뿅!
'프로젝트' 카테고리의 다른 글
Spring Board 프로젝트 (0) | 2022.02.07 |
---|