Hello

로그인 구현하기

by 볼빵빵오춘기

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>index</title>
</head>
<body>
    <form action="/member/login" method="post">
        <input type="text" name="memberEmail" placeholder="이메일">
        <input type="text" name="memberPassword" placeholder="비밀번호">
        <input type="submit" value="로그인">
    </form>
</body>
</html>

 

Controller

  • 로그인을 하면 로그인 정보가 따라다녀야 하므로 매개변수에 HttpSession 을 넣어준다.
  • 로그인 성공하면 session에 로그인 사용자의 email을 넣어준다.
@GetMapping("/login")
public String loginForm(){
 return "login";
}

@PostMapping("/login")
public String login(@ModelAttribute MemberDTO memberDTO, HttpSession session){
    boolean loginResult = memberService.login(memberDTO);
    if(loginResult) {
        session.setAttribute("loginEmail", memberDTO.getMemberEmail());
        return "main";
    }else{
        return "login";
    }
}

 

Service

public boolean login(MemberDTO memberDTO) {
    MemberDTO loginMember = memberRepository.login(memberDTO);
    if(loginMember != null){
        return true;
    }else{
        return false;
    }
}

 

Repository

public MemberDTO login(MemberDTO memberDTO){
    return sql.selectOne("Member.login",memberDTO);
}

 

Mapper.xml

select를 쓸 때는 resultType이 있어야한다.

<select id="login" parameterType="member" resultType="member">
    select * from member_table where memberEmail = #{memberEmail} and memberPassword = #{memberPassword}
</select>

 

main.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>main</title>
</head>
<body>
        <h2>${sessionScope.loginEmail} 님 환영합니다.</h2>
        <button onclick="update()">내정보 수정하기</button>
        <button onclick="logout()">로그아웃</button>
</body>
<script>
    const update = () => {
        location.href = "/member/update";
    }
    const logout = () => {
        location.href = "/member/logout";
    }
</script>
</html>

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기