공부/Spring

[Spring] 로그인 로그아웃 하기

students 2022. 9. 6. 03:23

1. loginPage.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<div class="col-2 ms-5">
        <!-- loginBox -->
        <div class="row px-3 py-2">
            <div class="loginBox secBorder col">
                <c:choose>
                    <c:when test="${empty sessionUser }">
                        <!-- not logined-->
                        <h3 class="secTitle"><i class="bi bi-file-lock2-fill"></i> 로그인</h3>
                        <form action="./loginProcess" method="POSt">
                            <div class="loginForm">
                                <input class="form-control" id="IdInput" name="user_id"
                                            type="text" placeholder="아이디를 입력해 주세요." aria-label="default input example" />
                                <input class="form-control" id="PwInput" name="user_pw"
                                            type="password" placeholder="패스워드를 입력해 주세요." aria-label="default input example" />
                                <div>
                                    <div class="chk_box">
                                        <input type="checkbox" id="saveIdBox" name="">
                                        <label>ID저장</label>
                                    </div>
                                    <div class="login_btn_box">
                                        <input type="submit" id="loginButton" class="btnBasic btn_submit" value="로그인">
                                    </div>
                                    <div class="login_etcBox">
                                        <a href="../user/userAgree">회원가입</a>
                                    </div>
                                </div>
                            </div>
                        </form>
                    </c:when>
                    <c:otherwise>
                        <h3 class="secTitle"><i class="bi bi-file-lock2-fill"></i> 로그인</h3>
                        <div class="loginForm">
                            ${sessionUser.user_nickname }님 환영합니다.
                            <div>
                                <div class="chk_box"></div>
                                <div class="login_etcBox">
                                    <a href="./loginoutProcess" type="button" id="logoutButton" class="btnBasic btn_submit">로그아웃</a>
                                </div>
                            </div>
                        </div>
    
                    </c:otherwise>
                </c:choose>
            </div>
        </div>
    </div>
cs

 

2) UserController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    @RequestMapping("loginPage"
    public String loginPage() {
        return "/user/loginPage";
    }
    
    
    @RequestMapping("loginProcess")
    public String loginProcess(UserVo param, HttpSession session) {    
        System.out.println("user_id : "+param.getUser_id()+"");
        System.out.println("user_pw : "+param.getUser_pw()+"");
        
        UserVo sessionUser = userService.login(param);
        if(sessionUser != null) {
            //인증 성공
            //여기 신경쓰자... session.setAttribute 딱 한번 활용됨... 앞으로 getAttribute 많이 쓴다...
            session.setAttribute("sessionUser", sessionUser);        
        }
        
        return "redirect:../board/mainPage";
    }
cs

 

3) UserService.java

1
2
3
4
    public UserVo login(UserVo userVo) {
        UserVo result = userSQLMapper.selectByIdAndPw(userVo);
        return result;
    }
cs

 

4) UserSQLMapper.java

1
2
    /* 아이디 비밀번호 체크 */
    public UserVo selectByIdAndPw(UserVo param);
cs

 

5) UserSQLMapper.xml

1
2
3
4
5
6
    <select id="selectByIdAndPw" resultType="com.spring.example.vo.UserVo">
        SELECT * 
        FROM EXAMPLE_USER 
        WHERE user_id = #{user_id} 
        AND user_pw = #{user_pw}
    </select>
cs

6) 확인


로그아웃

 

1) UserController.java

1
2
3
4
5
6
    @RequestMapping("loginoutProcess")
    public String loginoutProcess(HttpSession session) {
        session.invalidate(); //세션 저장 공간을 날리고 재구성..
        
        return "redirect:./loginPage";
    }
cs

 

2) 확인