반응형

① login3.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login3</title>
</head>
<body>
<form name="frmLogin" method="post" action="login" encType="UTF-8">
아이디 : <input type="text" name="user_id"><br>
비밀번호 : <input type="password" name="user_pwd"><br>
<input type="submit" value="로그인">
<input type="reset" value="초기화">
</form>
 
</body>
</html>
cs

 

 

아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 form 태그를 통해 LoginServlet으로 파라미터를 전송한다.

 

 

 

② LoginServlet.java

 

http://colorscripter.com/s/FtJrmDH

 

공유된 코드 - Color Scripter

저작권자 : jung_ye_jin@naver.com 삭제 요청 코드 설명 : LoginServlet

colorscripter.com

 

form 태그로 보낸 파라미터(아이디, 비밀번호)를 받는다. MemberVO를 세팅한 후 dao.isExisted로 간다.

 

 

 

③ MemberDAO.java

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package sec03.ex04;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
 
public class MemberDAO {
    private PreparedStatement pstmt;
    private Connection con;
    private DataSource dataFactory;
    public MemberDAO() {
        try {
            Context ctx = new InitialContext();
            Context envContext = (Context) ctx.lookup("java:/comp/env");
            dataFactory = (DataSource) envContext.lookup("jdbc/oracle");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
    
    public List<MemberVO> listmembers(){
        List<MemberVO> list = new ArrayList<MemberVO>();
        try {
            connDB();
            String query = "select * from t_member";
            System.out.println(query);
            pstmt = con.prepareStatement(query);
            ResultSet rs = pstmt.executeQuery();
            while(rs.next()) {
                String id = rs.getString("id");
                String pwd = rs.getString("pwd");
                String name = rs.getString("name");
                String email = rs.getString("email");
                Date joinDate = rs.getDate("joinDate");
                
                MemberVO vo = new MemberVO();
                vo.setId(id);
                vo.setPwd(pwd);
                vo.setName(name);
                vo.setEmail(email);
                vo.setJoinDate(joinDate);
                
                list.add(vo);
            }
            rs.close();
            pstmt.close();
            con.close();
        }catch(Exception e) {
            e.printStackTrace();
        }
        return list;
    }
    
    private void connDB() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("Oracle 드라이버 로딩 성공");
 
            con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe""jyj""java");
            System.out.println("Connection 생성 성공");
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    
    
    public boolean isExisted(MemberVO memberVO) {
        boolean result = false;
        String id = memberVO.getId();
        String pwd = memberVO.getPwd();
        try {
            con = dataFactory.getConnection();
            
            String query="select decode(count(*),1,'true','false') as result from t_member";
            query += " where id=? and pwd=?";
            
            pstmt = con.prepareStatement(query);
            pstmt.setString(1, id);
            pstmt.setString(2, pwd);
            ResultSet rs = pstmt.executeQuery();
            
            rs.next();
            result = Boolean.parseBoolean(rs.getString("result"));
            System.out.println("result = " + result);
        }catch(Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}
 
cs

 

isExisted 메소드에서 해당 아이디와 비밀번호를 가지고 있는 회원이 있는지 확인 후 있으면 true, 없으면 false를 반환한다.

 

 

 

 

LoginServlet.java로 반환된 값이 true이면 아래의 화면을 띄운다. 

회원정보 보기를 클릭하면 ShowMemeber.java로 넘어간다.

 

 

 

ShowMemeber.java 

 

http://colorscripter.com/s/0rPQnMj

 

공유된 코드 - Color Scripter

저작권자 : jung_ye_jin@naver.com 삭제 요청 코드 설명 : ShowMember

colorscripter.com

 

 

 

 

⑥  ③번에서 false가 반환 되면 아래의 화면을 띄운다.

 

 

반응형
반응형

① login.html 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 창</title>
</head>
<body>
<form name="frmLogin" method="post" action="/proc1/loginTest" encType="utf-8">
아이디 : <input type="text" name="user_id"><br>
비밀번호 : <input type="password" name="user_pw"><br>
<input type="submit" value="로그인"><input type="reset" value="다시 입력">
 
</form>
 
</body>
</html>
cs

 

 

 

② LoginTest 클래스작성

 

http://colorscripter.com/s/jH2BdbF

 

공유된 코드 - Color Scripter

저작권자 : jung_ye_jin@naver.com 삭제 요청 코드 설명 : loginTest

colorscripter.com

 

- ID나 비밀번호를 제대로 입력하지 않으면 오류 메시지를 출력하고 로그인 창으로 이동 가능한 a 태그 생성

- ID와 비밀번호가 제대로 입력 되었으면 로그인 메세지 출력

- ID가 admin이면 관리자 메세지 출력

 

 

 

③ 실행

아이디와 비밀번호를 입력 후 로그인 버튼을 클릭합니다.

 

 

페이지가 넘어가 로그인 성공 문구를 출력합니다.

 

 

만약 아이디와 비밀번호 중 하나라도 입력하지 않으면 로그인 실패 문구가 출력됩니다.

 

 

아이디가 admin이면 관리자 문구가 출력됩니다.

반응형

+ Recent posts