java spring

[Java Spring MVC] Maria DB와 MyBatis로 로그인 화면 만들기(3)

윤돌_99 2021. 2. 6. 13:13

<login.jsp>

프로젝트 첫화면입니다. 로그인 화면입니다. 

로그인 화면은 다음과 같이 구성되어 있다.

아이디와 비밀번호 입력창

회원가입 버튼 

회원목록 보기 버튼(마리아 db안에 데이터 볼 수 있는 목록)(로그인 전에는 볼 수 없음)

 

로그인 화면

● 아이디와 비밀번호가 일치하는 경우,

'회원의 이름' 님의 마이페이지가 출력되며, 회원정보 수정 버튼 생성, 회원목록 보기(세션을 통해 로그인 후에는 볼 수 있어짐), 로그아웃 버튼 생성

 

로그인 성공시 마이페이지 출력

 

 

● 아이디와 비밀번호가 틀릴 경우,

입력값이 잘못되었다는 빨간 글씨와 아이디찾기와 비밀번호 찾기 버튼이 생성

 

로그인 실패시 화면

만들때는 욕심나서 막 이것저것 추가해서 만들었는데, 블로그에 올릴려니까 너무 복잡하네요...

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
47
48
49
50
51
52
53
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 페이지</title>
</head>
<body>
    <hr>
    <c:if test = "${member == null }" >
    
    <h1>로그인 화면</h1>
    <h2>아이디와 비밀번호를 입력해주세요.</h2>
    
    <form role = "form" autocomplete = "off" action="login.do" method="POST">
        <table border="1">
            <tr>
                <td bgcolor="orange" width="70">아이디</td>
                <td align="left"><input type="text" name="id" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">비밀번호</td>
                <td align="left"><input type="password" name="pw" size="20" /></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="LogIn" /></td>
            </tr>
        </table>
        <hr>
        <a href="moveInsertBoard.do">회원가입하기</a>
    </form>
    </c:if>
    <c:if test="${msg == false }">
        <p style="color:#f00;">로그인에 실패하였습니다.</p>
        <hr>
        <a href="GoFindId.do">아이디 찾기</a> &nbsp;&nbsp;&nbsp;
        <a href="GoFindPassword.do">패스워드 찾기</a> 
    </c:if>
    <c:if test="${member != null }">
        <p>${member.name}님의 마이페이지</p>
        <p>${member.name}님 환영합니다.</p>
        
        <hr>
        <a href="updateBoardView.do">본인회원정보 수정</a>
        <hr>
        <a href="logout.do">로그아웃</a>
    </c:if>
    <hr>
        <a href="getBoardList.do">회원목록 보기</a>
</body>
</html>
cs

 

<findId.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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 
    <h1>아이디 찾기</h1>
    <h3>이름과 전화번호를 입력해주시면 아이디를 알려드립니다.</h3>
 
    <form role = "form" autocomplete = "on" action="FindId.do" method="POST">
        <table border="1">
            <tr>
                <td bgcolor="orange" width="70">이름</td>
                <td align="left"><input type="text" name="name" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">전화번호</td>
                <td align="left"><input type="text" name="phone" size="20" /></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="아이디 찾기" /></td>
            </tr>
        </table>
        <hr>
    </form>
    
    <c:if test = "${check == 1}">
        <p>일치하는 정보가 존재하지 않습니다.</p>
        <hr>
        <a href="loginback.do">로그인 화면으로 돌아가기</a>
    </c:if>
    
    <c:if test = "${check == 0}">
        <p>찾으시는 아이디는 ' ${id} ' 입니다.</p>
        <hr>
        <a href="loginback.do">로그인 화면으로 돌아가기</a>
    </c:if>
 
</body>
</html>
cs

 

<findPassword.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
47
48
49
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>패스워드 찾기</title>
</head>
<body>
 
    <h1>패스워드 찾기</h1>
    <h3>아이디와 이름, 전화번호를 입력해주시면 패스워드를 알려드립니다.</h3>
 
    <form role = "form" autocomplete = "on" action="FindPassword.do" method="POST">
        <table border="1">
            <tr>
                <td bgcolor="orange" width="70">아이디</td>
                <td align="left"><input type="text" name="id" /></td>
            </tr>
            <tr>
                <td bgcolor="orange" width="70">이름</td>
                <td align="left"><input type="text" name="name" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">전화번호</td>
                <td align="left"><input type="text" name="phone" size="20" /></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="패스워드 찾기" /></td>
            </tr>
        </table>
        <hr>
    </form>
    
    <c:if test = "${check == 1}">
        <p>일치하는 정보가 존재하지 않습니다.</p>
        <hr>
        <a href="loginback.do">로그인 화면으로 돌아가기</a>
    </c:if>
    
    <c:if test = "${check == 0}">
        <p>찾으시는 패스워드는 ' ${pw} ' 입니다.</p>
        <hr>
        <a href="loginback.do">로그인 화면으로 돌아가기</a>
    </c:if>
 
</body>
</html>
cs

 

<BoardList.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
47
48
49
50
51
52
53
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>회원정보 목록</title>
 
</head>
<body>
    <c:if test="${member != null }">
    <h1>회원정보 목록</h1>
    <table border="1" >
        <tr>
            <th bgcolor="" width="150">아이디</th>
            <th bgcolor="" width="150">패스워드</th>
            <th bgcolor="" width="150">이름</th>
            <th bgcolor="" width="150">전화번호</th>
            <th bgcolor="" width="150">가입일</th>
        </tr>
        <c:choose>
            <c:when test="${!empty boardList}">
                <c:forEach items="${boardList }" var="board">
                    <tr>
                        <td>${board.id }</td>
                        <td>${board.pw }</td>
                        <td>${board.name }</td>
                        <td>${board.phone}</td>
                        <td><fmt:formatDate value="${board.regDate }" pattern="yyyy-MM-dd"/></td>
                    </tr>
                </c:forEach>
            </c:when>
            <c:otherwise>
                <tr>
                    <td colspan="5">등록된 회원이 없습니다.</td>
                </tr>
            </c:otherwise>
        </c:choose>
    </table>
    <a href="loginback.do">마이페이지로 돌아가기</a>
    </c:if>
    <c:if test ="${member == null }">
        <p>로그인을 하신 후 회원 목록을 열람하실 수 있습니다.</p>
        <a href="loginback.do">로그인 화면으로 돌아가기</a>
    </c:if>
    <br>
</body>
</html>
cs

 

<insertBoard.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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>회원 가입 페이지</h1>
    <h3>회원 정보를 입력하면 마리아DB에 저장</h3>
    <hr>
    
    <form action="insertBoard.do" method="POST">
        <table border="1">
            <tr>
                <td bgcolor="orange" width="70">아이디</td>
                <td align="left"><input type="text" name="id" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">비밀번호</td>
                <td align="left"><input type="text" name="pw" size="10" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">이름</td>
                <td align="left"><input type="text" name="name" size="10" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">전화번호</td>
                <td align="left"><input type="text" name="phone" size="20" /></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="회원 등록" /></td>
            </tr>
        </table>
    </form>
    <hr>
    <a href="loginback.do">로그인 페이지로 돌아가기</a>
</body>
</html>
cs

 

<updateBoardView.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
47
48
49
50
51
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>    
    <h1>회원 정보 수정하기</h1>
    <hr>
    <section id = "container">
    <form action="updateBoard.do" method="post">
        <table border="1">
            <tr>
                <td bgcolor="orange" width="70">아이디</td>
                <td align="left"><input id = "id" name="id" type="text" readonly = "readonly"
                    value="${member.id }" /></td>
            </tr>
            <tr>
                <td bgcolor="orange">패스워드</td>
                <td align="left"><input name ="pw" id = "pw" value = "${member.pw}"></td>
            </tr>
            <tr>
                <td bgcolor="orange">이름</td>
                <td align="left"><input name ="name" id ="name" value = "${member.name}"></td>
            </tr>
            <tr>
                <td bgcolor="orange">전화번호</td>
                <td align="left"><input name ="phone" id="phone" value = "${member.phone}"></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="회원정보 수정" /></td>
            </tr>
        </table>
    </form>
    </section>
    <c:if test = "${msg == false }">
        <p>로그인을 하셔야 회원정보 수정이 가능합니다.</p>
        
        <p><a href="loginback.do">로그인 화면으로</p>
    </c:if>
    
    <hr>
    <a href="deleteBoard.do?id=${member.id }">회원 탈퇴</a>&nbsp;&nbsp;&nbsp;
    <a href="getBoardList.do">회원정보 목록</a>
    <hr>
    <a href="loginback.do">마이페이지로 돌아가기</a>
</body>
</html>
cs

 

지저분한 코드이지만 봐주셔서 감사합니다..