반응형
로그인을할수있게 sql을 xml만들고

값을 주고, 받는 자바빈과 DAO를 만들고.


서버에서를 유효성검사 시키기 위해 Validator를 이용한 코드를짜고,

sql을 활용하기위해 loginservice를 통해정보를 전달한다.

동작하기 위한 컨트롤러를 만들어준다.
@Controller
public class LoginController {
private ApplicationContext context; // 컨텍스트 (선언)
@RequestMapping("/login.do") // get방식 요청
public String login() {
return "/board/login";
}
@RequestMapping(value="/login.do", method = RequestMethod.POST) // login.do에 post 방식요청이 오면
public ModelAndView loginProc(// 모델엔뷰(자바빈)이 받고 에러발생 정보는 바인딩으로 잡고 세션을 걸어준다.
@ModelAttribute("LoginModel") LoginSessionModel loginModel,
BindingResult result, HttpSession session) {
ModelAndView mav = new ModelAndView(); // 모델엔뷰 객체를 생성
//form validation 유효성 검증을하고
new LoginValidator().validate(loginModel, result);
if(result.hasErrors()) { // 에러가 존재하면
mav.setViewName("/board/login"); // 로그인을 표시하고
return mav; // 리턴
}
// 받아온 자바빈으로 아이디와 비밀번호를 꺼내고
String userId = loginModel.getUserId();
String userPw = loginModel.getUserPw();
context = new ClassPathXmlApplicationContext("/config/applicationContext.xml"); // 컨텍스트 선언된 객체를 생성하고
LoginService loginService = (LoginService) context.getBean("loginService"); // 저장된 로그인 서비스를 꺼내 객체로 얻고
LoginSessionModel loginCheckResult = loginService.checkUserId(userId); // 로그인 서비스에 체크아이디를 넣어주고 자바빈 객체를 뽑아낸다.
//check joined user
if(loginCheckResult == null) { // 꺼내온 자바빈 정보가 없다면(null이면)
mav.addObject("userId", userId);
mav.addObject("errCode", 1); //에러코드 1번을 띄우고(넣고)
mav.setViewName("/board/login");//(로그인창으로)
return mav; //리턴(포워딩)
}
//check password 꺼내온 자바빈 정보 있다면 null이 아니라면
if(loginCheckResult.getUserPw().equals(userPw)) {// 자바빈으로 꺼내온 비밀번호와 입력된 비밀번호를 비교하고 일치하면
session.setAttribute("userId", userId); // 세션에 아이디와 , 이름을 저장하고
session.setAttribute("userName", loginCheckResult.getUserName());
mav.setViewName("redirect:/board/list.do"); // list.do로
return mav; // 리턴한다.
} else { // 만일 일치하지않으면
mav.addObject("userId", userId);
mav.addObject("errCode", 2); // 에러코드 2번을 띄우고
mav.setViewName("/board/login"); // 로그인창으로
return mav; //리턴한다
}
}
@RequestMapping("/logout.do") // logout.do 요청이오면
public String logout(HttpSession session) { // session정보를 불러와 logout에 대입하고
session.invalidate(); // 로그아웃을 위해 session.invalidate()로 (세션을 초기화)후
return "redirect:login.do"; //login.do로 리다리렉트 시킨다.
}
}
반응형
'Java > SPRING' 카테고리의 다른 글
스프링 툴 [Spirng Toos Suite] SPRING4.0 이란 (0) | 2022.01.05 |
---|---|
스프링 [Spirng] iBatis - 리스트, 글보기, 댓글, 추천, 조회수, 글삭제 , 댓글삭제 쿼리 및 기능 구현 (0) | 2022.01.04 |
스프링 [Spirng] iBatis 연동 (0) | 2022.01.03 |
스프링 프레임워크 [Spirng Framework] AbstractExcelView & AbstractPdfView Class Excel,Pdf download 구현 (0) | 2021.12.28 |
스프링 프레임워크 [Spirng Framework] download 구현 (0) | 2021.12.28 |