<!-- 로그인 -->
<!--
기본키의 2가지 특징
1. Not Null
2. 유일성 (unique) /중복제거(no duplicate)
-->
<select id="loginPost" parameterType="memberVO" resultType="memberVO" >
SELECT MEMBERID,PASSWORD,NAME,EMAIL,REGDATE,INTRODUCTION,MEMBER_SERT_PIC
FROM MEMBER
WHERE MEMBERID = #{memberId}
AND PASSWORD = PKG_CRYPTO.ENCRYPT(#{password})
</select>
//로그인
public MemberVO loginPost(MemberVO memberVO) {
return this.sqlSessionTemplate.selectOne("lprod.loginPost", memberVO);
//고유값으로 하나만 받아와서 one사용
}
//로그인
//메소드 재정의
@Override
public MemberVO loginPost(MemberVO memberVO) {
return this.lprodMapper.loginPost(memberVO);
}
//로그인
public MemberVO loginPost(MemberVO memberVO);
@GetMapping("/login")
public String login(MemberVO memberVO, Model model) {
model.addAttribute("memberVO", memberVO);//넣어준값을 jsp에서 사용하는것
return "lprod/login";
}
// public String loginPost(@RequestParam String memberid,@RequestParam String password) {
// public String loginPost(@RequestParam Map<String, String> map) {
// /lprod/login?memberid=a001&password=asdfasdf
@RequestMapping(value="/login", method=RequestMethod.POST)
public String loginPost(@ModelAttribute MemberVO memberVO,
Model model,
HttpServletRequest request) {
logger.info("memberVO : " + memberVO.toString());
MemberVO member = this.lprodService.loginPost(memberVO);
if(member==null) { //아이디&비밀번호 오류
model.addAttribute("message","아이디&비밀번호 오류 입니다.");
return "lprod/login";
}else { //로그인 처리
//세션 객체를 받아옴
HttpSession session = request.getSession();
//세션의 존속 시간을 10분으로 설정(기본은 30분)
session.setMaxInactiveInterval(10);
//세션의 속성 명으로 member를 사용하여 member객체를 세팅함
session.setAttribute("member", member);
//session.setAttribute("id", member.getMemberid());
//redirect
return "redirect:/lprod/list";
}
}
//어노테이션RequestMapping(value="/lprod/logout",method=RequestMethod=POST)
@PostMapping("/logout")
public String logout(HttpServletRequest request) {
HttpSession session = request.getSession();
//사용자 관련 세션을 초기화
session.invalidate();
//redirect
return "redirect:/lprod/login";
}
사진 컬럼 추가