JSP 웹소켓 채팅

Back-End/JSP 2019. 5. 3. 09:44

JSP 웹소켓 채팅


JSP 끝나는날 해보기

:

MySQL JDBC Driver 다운로드

Back-End/JSP 2019. 5. 3. 09:37

MySQL JDBC Driver 다운로드


MySQL Connector/J 5.1.45 ZIP


출처

https://downloads.mysql.com/archives/c-j/

'Back-End > JSP' 카테고리의 다른 글

19.05.03 JDBC로 데이터베이스 연동  (0) 2019.05.03
JSP 웹소켓 채팅  (0) 2019.05.03
19.05.02 JSP와 데이터베이스 연동-2 (동영상 26강~  (0) 2019.05.02
19.05.01 기본 SQL문  (0) 2019.05.01
19.05.01 JSP와 자바빈즈  (0) 2019.05.01
:

리눅스 공부

개인 공부 2019. 5. 2. 18:45

Docker, 리눅스 공부

동영상, 운영체제 깔아보기

:

19.05.02 JSP와 데이터베이스 연동-2 (동영상 26강~

Back-End/JSP 2019. 5. 2. 13:32

자바클래스를 만들어 jsp가 자바클래스를 호출해서 회원정보를 받아서 데이터베이스에 입력되도록 만들어보기



회원가입 (MemberJoin.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<center>
    <h2>회원 가입</h2>
    <body>
        <form action="MemberJoinProc.jsp" method="post">
            <table width="500" border="1">
 
                <tr height="50">
                    <td width="150" align="center">아이디</td>
                    <td width="350" align="center"><input type="text" name="id"
                        size="40" placeholder="id를 넣으세요."></td>
                <tr height="50">
                    <td width="150" align="center">패스워드</td>
                    <td width="350" align="center"><input type="password"
                        name="pass1" size="40" placeholder="비밀번호는 영문과 숫자만 넣어주세요."></td>
                <tr height="50">
                    <td width="150" align="center">패스워드 확인</td>
                    <td width="350" align="center"><input type="password"
                        name="pass2" size="40"></td>
                <tr height="50">
                    <td width="150" align="center">이메일</td>
                    <td width="350" align="center"><input type="email"
                        name="email" size="40" placeholer></td>
                <tr height="50">
                    <td width="150" align="center">전화번호</td>
                    <td width="350" align="center"><input type="tel" name="tel"
                        size="40"></td>
                <tr heigth="50">
                    <td width="150" align="center">당신의 관심분야</td>
                    <td width="350" align="center"><input type="checkbox"
                        name="hobby" value="캠핑">캠핑 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="등산">등산 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="영화">영화 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="독서">독서 &nbsp;&nbsp;</td>
                </tr>
                <tr heigth="50">
                    <td width="150" align="center">당신의 직업은</td>
                    <td width="350" align="center"><select name="job">
                            <option value="교사">교사</option>
                            <option value="변호사">변호사</option>
                            <option value="의사">의사</option>
                            <option value="기술사">기술사</option>
                    </select></td>
                </tr>
                <tr height="50">
                    <td width="150" align="center">당신의 연령은</td>
                    <td width="350" align="center"><input type="radio" name="age"
                        value="10">10대 &nbsp;&nbsp; <input type="radio" name="age"
                        value="20">20대&nbsp;&nbsp; <input type="radio" name="age"
                        value="30">30대&nbsp;&nbsp; <input type="radio" name="age"
                        value="40">40대&nbsp;&nbsp;</td>
                </tr>
 
                <tr height="50">
                    <td width="150" align="center">하고싶은말</td>
                    <td width="350" align="center"><textarea rows="5" cols="40"
                            name="info"></textarea></td>
                </tr>
 
                <tr height="50">
                    <td align="center" colspan="2"><input type="submit"
                        value="회원 가입"> <input type="reset" value="취소">
            </table>
        </form>
</center>
</body>
</html>
 
 
cs



자바빈 클래스 (입력한 회원정보를 저장) (MemberBean.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
package model;
 
public class MemberBean { //자바빈 클래스
    
    private String id;
    private String pass1;
    private String pass2;
    private String email;
    private String tel;
    private String hobby;
    private String job;
    private String age;
    private String info;
    
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPass1() {
        return pass1;
    }
    public void setPass1(String pass1) {
        this.pass1 = pass1;
    }
    public String getPass2() {
        return pass2;
    }
    public void setPass2(String pass2) {
        this.pass2 = pass2;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getHobby() {
        return hobby;
    }
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
    
    
    
}
 
cs



데이터베이스에 접속하고 INSERT, DELETE등 명령을 수행하는 클래스 (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
package model;
 
import java.sql.*//SQL 패키지인지 반드시 확인
                    //*을 쓰면 sql에 있는 패키지를 모두 가져오기 때문에 따로 안써도 된다.
 
 
//오라클 데이터 베이스에 연결하고 SELECT, INSERT, UPDATE, DELETE 작업을 실행해주는 클래스입니다.
public class MemberDAO {
    
     //아이디,비밀번호 사용해서 연결하는 부분은 반복적으로 계속 사용하므로 메소드로 만드는 것이 좋다.
    
    //오라클에 접속하는 소스를 작성
    String id = "system";
    String pass = "123456";
    String url = "jdbc:oracle:thin:@localhost:1521:XE"//접속 URL
    
    Connection con; //데이터베이스에 접근할수 있도록 설정
    PreparedStatement pstmt; //데이터베이스에서 쿼리를 실행시켜주는 객체
    ResultSet rs; //데이터베이스의 테이블의 결과(SELECT, INSERT, UPDATE, DELETE 등)
                    //데이터베이스의 테이블의 결과를 리턴받아 자바에 저장해주는 객체
    
    
    
    //데이터베이스에 접근할 수 있도록 도와주는 메소드
    
    public void getCon() 
    {
        
        try 
        {
            //1.해당 데이터베이스를 사용한다고 선언 (클래스를 등록 = 오라클을 사용)
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2. 해당 데이터 베이스에 접속
            con = DriverManager.getConnection(url,id,pass);
            //con 앞에 Connection을 쓰면 메소드의 지역변수에 저장이 되기때문에 쓰지 않는다
        }
        catch(Exception e) 
        {
            
            
        }
    }
    
    //데이터베이스에 한사람의 회원 정보를 저장해주는 메소드
    public void insertMember(MemberBean mbean) 
    {
        try
        {
            getCon();
            //3. 접속후 쿼리준비하여 쿼리를 사용하도록 설정
            String sql = "insert into member values(?,?,?,?,?,?,?,?)"//8개의 값이 들어간다.
            //쿼리를 사용하도록 설정
            PreparedStatement pstmt = con.prepareStatement(sql); //jsp 에서 쿼리를 사용하도록 설정
            // ?에 맞게 데이터를 맵핑
            pstmt.setString(1, mbean.getId()); //SQL의 insert to values에 넣을 값들.
            pstmt.setString(2, mbean.getPass1());
            pstmt.setString(3, mbean.getEmail());
            pstmt.setString(4, mbean.getTel());
            pstmt.setString(5, mbean.getHobby());
            pstmt.setString(6, mbean.getJob());
            pstmt.setString(7, mbean.getAge());
            pstmt.setString(8, mbean.getInfo());
            //4. 오라클에서 쿼리를 실행 하시오.
            pstmt.executeUpdate(); //insert, update, delete 시 사용하는 메소드
            
            //5. 자원 반납
            con.close();
            
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    
    
}
 
cs



자바빈 클래스와 DAO클래스를 취합하는 JSP파일 (MemberJoinProc.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 import="model.MemberDAO"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
 
    <% 
    request.setCharacterEncoding("EUC-KR"); //한글 처리
    
    //취미 부분은 별도로 읽어들여 다시 빈클래스에 저장
    
    String [] hobby = request.getParameterValues("hobby");
    //배열에 있는 내용을 하나의 스트림으로 저장
    String texthobby = "";
    
    for(int i =0; i< hobby.length; i++)
    {
        texthobby += hobby[i]+" "//취미를 배열을 사용해 하나씩 출력해서 texthobby에 넣는다.
    }
%>
 
    <!-- useBean을 이용하여 한꺼번에 데이터를 받아옴 -->
    <!-- 맵핑 시키시오 -->
    <jsp:useBean id="mbean" class="model.MemberBean">
        <jsp:setProperty name="mbean" property="*" />
    </jsp:useBean>
 
    <% 
    mbean.setHobby(texthobby); //기존 취미는 주소번지가 저장되기에 위에 배열의 내용을 하나의 스트림으로 저장한 변수를 다시 입력
                                                        
    
    MemberDAO mdao = new MemberDAO(); //insert 메소드를 사용하기 위해 MemberDAO 객체 생성
    mdao.insertMember(mbean); //insert메소드를 호출해 mbean에 저장된 값을 넘겨주면 그 값이 데이터베이스에 저장된다.
    
                                                        
%>
 
    오라클에 접속 완료 ~
 
</body>
</html>
cs





데이터베이스에 접속하고 INSERT, DELETE등 명령을 수행하는 클래스(위에 코드에서 SELECT문 사용 검색해서 모든 회원 검색) (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
103
104
105
106
107
108
109
110
111
package model;
 
import java.sql.*//SQL 패키지인지 반드시 확인
import java.util.Vector;
//*을 쓰면 sql에 있는 패키지를 모두 가져오기 때문에 따로 안써도 된다.
 
//오라클 데이터 베이스에 연결하고 SELECT, INSERT, UPDATE, DELETE 작업을 실행해주는 클래스입니다.
public class MemberDAO {
 
    // 아이디,비밀번호 사용해서 연결하는 부분은 반복적으로 계속 사용하므로 메소드로 만드는 것이 좋다.
 
    // 오라클에 접속하는 소스를 작성
    String id = "system";
    String pass = "123456";
    String url = "jdbc:oracle:thin:@localhost:1521:XE"// 접속 URL
 
    Connection con; // 데이터베이스에 접근할수 있도록 설정
    PreparedStatement pstmt; // 데이터베이스에서 쿼리를 실행시켜주는 객체
    ResultSet rs; // 데이터베이스의 테이블의 결과(SELECT, INSERT, UPDATE, DELETE 등)
                    // 데이터베이스의 테이블의 결과를 리턴받아 자바에 저장해주는 객체
 
    // 데이터베이스에 접근할 수 있도록 도와주는 메소드
 
    public void getCon() {
 
        try {
            // 1.해당 데이터베이스를 사용한다고 선언 (클래스를 등록 = 오라클을 사용)
            Class.forName("oracle.jdbc.driver.OracleDriver");
            // 2. 해당 데이터 베이스에 접속
            con = DriverManager.getConnection(url, id, pass);
            // con 앞에 Connection을 쓰면 메소드의 지역변수에 저장이 되기때문에 쓰지 않는다
        } catch (Exception e) {
 
        }
    }
 
    // 데이터베이스에 한사람의 회원 정보를 저장해주는 메소드
    public void insertMember(MemberBean mbean) {
        try {
            getCon();
            // 3. 접속후 쿼리준비하여 쿼리를 사용하도록 설정
            String sql = "insert into member values(?,?,?,?,?,?,?,?)"// 8개의 값이 들어간다.
            // 쿼리를 사용하도록 설정
            PreparedStatement pstmt = con.prepareStatement(sql); // jsp 에서 쿼리를 사용하도록 설정
            // ?에 맞게 데이터를 맵핑
            pstmt.setString(1, mbean.getId()); // SQL의 insert to values에 넣을 값들.
            pstmt.setString(2, mbean.getPass1());
            pstmt.setString(3, mbean.getEmail());
            pstmt.setString(4, mbean.getTel());
            pstmt.setString(5, mbean.getHobby());
            pstmt.setString(6, mbean.getJob());
            pstmt.setString(7, mbean.getAge());
            pstmt.setString(8, mbean.getInfo());
            // 4. 오라클에서 쿼리를 실행 하시오.
            pstmt.executeUpdate(); // insert, update, delete 시 사용하는 메소드
 
            // 5. 자원 반납
            con.close();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    // 모든 회원의 정보를 리턴해주는 메소드 호출
    // 아까 벡터로 받았기 때문에 리턴타입을 Vector<MemberBean>로 사용한다.
 
    // 회원가입을 했을 때 자료는 bean클래스에 일단 저장하고 다시 벡터에 저장 (반복한다)
    public Vector<MemberBean> allSelectMember() {
        // 가변길이로 데이터를 저장
        Vector<MemberBean> v = new Vector<>();
 
        // 무조건 데이터 베이스는 예외처리를 해야된다.
        // 무조건 예외처리를 해야될때 (데이터베이스, 네트워크, 스레드, 입출력)
        try {
            // 커넥션 연결 (getCon() 메소드를 호출해서 데이터베이스와 연결)
            getCon();
            // 쿼리 준비
            String sql = "select * from member";
            // 쿼리를 실행시켜주는 객체 선언
            pstmt = con.prepareStatement(sql);
            // 쿼리를 실행 시킨 결과를 리턴해서(오라클 테이블의 검색된 결과를 자바객체에 저장)
            rs = pstmt.executeQuery(); // 데이터베이스의 쿼리를 실행한 데이터가 rs에 저장된다.
            // 반복문을 사용해서 rs에 저장된 데이터를 추출해놓아야 한다.
            while (rs.next()) // 저장된 데이터만큼 반복문 실행한다는 뜻
            {
                MemberBean bean = new MemberBean(); // 데이터베이스에서 멤버빈클래스로 데이터를 받아야 하기 때문에 객체 생성
                bean.setId(rs.getString(1)); // 컬럼으로 나뉘어진 데이터를 빈클래스에 저장, 계속 데이터를 넣어야 하기때문에 새로운 객체를 계속 만들어야함
                bean.setPass1(rs.getString(2));
                bean.setEmail(rs.getString(3));
                bean.setTel(rs.getString(4));
                bean.setHobby(rs.getString(5));
                bean.setJob(rs.getString(6));
                bean.setAge(rs.getString(7));
                bean.setInfo(rs.getString(8));
                // 패키징된 memberbean 클래스를 벡터에 저장
                v.add(bean); // 벡터에 0번지부터 순서대로 데이터가 저장
            }
            // 자원 반납
            con.close();
 
        } catch (Exception e) {
 
        }
 
        // 다 저장된 벡터를 리턴
        return v;
    }
 
}
 
cs



회원정보를 가져오고 출력하는 페이지 (MemberList.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
<%@page import="java.util.Vector"%>
<%@page import="model.MemberDAO"%>
<%@page import="model.MemberBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
 
    <!-- 1.데이터 베이스에서 모든 회원의 정보를 가져옴  2. table태그를 이용하여 화면에 회원들의 정보를 출력-->
 
    <%
        //회원들의 정보가 얼마나 저장되어있는지 모르기에 (배열은 길이가 고정되어 있기 때문에 List나 벡터를 쓴다.) (List,벡터는 가변길이를 지원)
        MemberDAO mdao = new MemberDAO();
        Vector<MemberBean> vec = mdao.allSelectMember();
        //MemberBean클래스를 안넣어주면 기본적으로 벡터는 오브젝트 클래스이기때문에 다시 캐스팅을 해주어야한다.
    %>
 
    <center>
        <h2>모든 회원 보기</h2>
        <table width="800" border="1">
            <tr height="50">
                <td align="center" width="150">아이디</td>
                <td align="center" width="250">이메일</td>
                <td align="center" width="200">전화번호</td>
                <td align="center" width="200">취미</td>
            </tr>
            <%
                for (int i = 0; i < vec.size(); i++) {
                    MemberBean bean = vec.get(i); //벡터에 담긴 빈클래스를 하나씩 추출
            %>
            <tr height="50">
                <td align="center" width="150"><a
                    href="MemberInfo.jsp?id=<%=bean.getId()%>"> <!-- MemberInfo.jsp로 얻은 Id를 넘겨준다. -->
                        <%=bean.getId()%></a></td>
                <td align="center" width="250"><%=bean.getEmail()%></td>
                <td align="center" width="200"><%=bean.getTel()%></td>
                <td align="center" width="200"><%=bean.getHobby()%></td>
            </tr>
 
            <%
                }
            %>
        </table>
    </center>
</body>
</html>
cs









'Back-End > JSP' 카테고리의 다른 글

JSP 웹소켓 채팅  (0) 2019.05.03
MySQL JDBC Driver 다운로드  (0) 2019.05.03
19.05.01 기본 SQL문  (0) 2019.05.01
19.05.01 JSP와 자바빈즈  (0) 2019.05.01
19.05.01 JSP와 데이터베이스 연동 (22강~25강)  (0) 2019.05.01
:

데이터베이스 외부 관리 툴 설치 (HeidiSQL 설치)

Back-End/Data Base 2019. 5. 1. 22:34

데이터베이스 외부 관리 툴 설치 (HeidiSQL 설치)

 

광고창 때문에 경고창이 발생하므로 '우클릭' ->'다른이름으로 저장' 을 누르면 된다!



출처

https://www.heidisql.com/

 


 

:

19.05.01 기본 SQL문

Back-End/JSP 2019. 5. 1. 22:31

-데이터베이스-

 

많은 자료들을 특정한 규칙에 맞게 대용량의 저장장치에 보관하여 필요한 업무에 사용하는 자료의 저장 창고 입니다.

 

 

 

-DBMS-

 

데이터베이스 안에 있는 데이터를 관리하는 것. 데이터를 읽고 변경하고 추가하고 삭제할 수 있게 해줍니다.

 

 

 

-SQL 이란?-

 

Structured Query Language의 약어로 구조화된 질의어로 데이터베이스의 데이터들을 조작하는 명령들입니다.

 

 

 

-레코드-

 

여러 연관된 속성의 집합

 

 

 

-관계형 데이터베이스에서 나타나는 여러 관계-

 

one to one (1:1) 관계 : 한 테이블에 있는 하나의 데이터는 다른 테이블에 있는 하나의 데이터와 연관

 

one to N (1:N) 관계 : 한 테이블에 있는 하나의 데이터는 다른 테이블에 있는 여러개의 데이터에 연관

 

N to N (N:N) 관계 : 복수 개의 데이터는 복수 개의 데이터에 연관이 된다.

 

 

 

-질의문-

 

 용도

질의문 

데이터베이스 생성

CREATE DATABASE DB_NAME

데이터베이스 삭제

DROP DATABASE DB_NAME

테이블 생성

CREATE TABLE TABLE_NAME

테이블 삭제

DROP TABLE TABLE_NAME 

테이블구조 변경 명령

ALTER TABLE [TABLE_NAME]... 

데이터 입력

INSERT INTO TABLE_NAME(COL_NAME,...)VALUES(VALUES...)

데이터 전체 조회 

SELECT * FROM TABLE_NAME

조건에 맞는 데이터 조회 

SELECT * FROM TABLE_NAME WHERE [조건]

데이터 변경 

UPDATE TABLE_NAME SET COL_NAME=VALUES...

데이터 삭제 

DELETE FROM TABLE_NAME WHERE...

 

 

 

 

 

-테이블 검색 출력 결과-

 

 

:

19.05.01 JSP와 자바빈즈

Back-End/JSP 2019. 5. 1. 17:59

-자바빈즈(JavaBeans)란?-


자바에서 프로그래밍을 하는 기본 단위를 클래스라고 표현합니다.

모든 자바프로그래밍은 이러한 클래스를 만들어 가는 과정이라고 말할 수 있습니다.

이 장에서 배우는 "빈" 이라는 것도 자바의 클래스 입니다.

결국 빈을 만드는 과정은 간단한 자바프로그래밍이라고 생각합니다.

빈이란 뭐든지 할 수 있는 능력을 가지고 있는 소프트웨어 덩어리라고 생각하면 좋다.

jsp 페이지가 복잡한 자바코드로 구성되는 것을 가능한 피하고 jsp 페이지에는 HTML과 같은 쉽고 

간단한 코드만을 구성하도록 하는 것이 자바빈즈를 사용하는 목적입니다.




-JSP의 단점-


1. JSP 페이지에 HTML을 제외한 다른 많은 JSP 코드들이 있으므로해서 JSP 페이지를 이해하기 어려워진다는 점.


2. JSP 페이지 내에 작성된 프로그램 코드는 다시 사용하기가 어렵습니다.




-컴포넌트-


부품을 다른말로 컴포넌트라고 부릅니다.

소프트웨어를 작성하는 것도 이와 비슷한 원리로 컴포넌트를 만들어 재사용하게 됩니다.




-자바빈즈 만들기-


 

 1. 정보를 저장하는 변수는 모두 private로 선언합니다.


 2. private로 선언된 변수의 값을 저장하는 메소드를 만듭니다. 메소드의 일이름은 setXxx( ) 형식으로 만듭니다.

    Xxx는 변수의 이름과 같으며 첫 글자는 대문자 입니다.


 3. private로 선언된 변수의 값을 가져오는 메소드를 만듭니다. 메소드의 이름은 getXxx( ) 형식으로 만듭니다.

    Xxx는 변수의 이름과 같으며 첫 글자는 대문자입니다.


 4. setXxx( ) 메소드와 getXxx( ) 메소드를 public 으로 선언하여 둡니다.



public class MyBean 

{                           

......                         

......


  1. 클래스를 작성할 때는 접근제한자 + class + 클래스 이름 형식으로 작성하게 됩니다. 

  2. 현재는 public이며 그 다음 class는 클래스를 작성 시 기본적으로 적게 됩니다. 

  3.  MyBean은 여러분이 원하는 클래스의 이름을 적어주게 됩니다(관례상 대문자로 시작)


private String name;

public void setName(String name)

{

this.name = name;

}


public String getName( ) 

{

return name;

  1. 이름을 저장할 변수를 name으로 설정


  2. 변수 name의 첫글자 n을 대문자로 하여 setName라고 정해 줍니다.


  3. 매개변수 name 값을 넘겨받아 자신의 변수인 this.name에 저장해 줍니다.


  4. 변수 name의 첫글자 n을 자로 하여 getName( )이라고 저정해 줍니다.


  5. name 변수에 저장된 값을 반환해 주도록 합니다.




-package-


연관성이 있는 클래스들을 묶에서 함께 보관하는 폴더.

 

 

 

-빈 컴파일-

 

컴파일이란 우리가 작성한 순수 자바 파일을 컴퓨터 내부에서 실질적으로 사용 할 수 있도록 하기 위해서 하는 작업입니다.

이렇게 순수한 자바 파일을 컴파일 하는 과정을 거치게 되면 이제 빈즈 프로그램에서 사용할 작업이 모두 완료된 것입니다.

 

 

 

-자바 전용 개발 툴-

 

자바 전용 개발 툴에서는 대표적으로 이클립스, Jbuider, Visual Age for Java, Visual Cafe, IntelliJ IDEA등이 있습니다.

 

 

 액션 태그

 빈 태그

 특별한 행동을 위해 내부적으로 지원하는 태그.

다른 페이지를 포함하거나, 이동하는 등등의 태그들을 말한다.

태그 중 특별히 빈과 관련된 태그. 

 

 

 

-빈 태그-

 

 

 빈 관련 태그

 내용

 <jsp:useBean id="..." class="..." scope="..."/>

 빈을 생성하여 둡니다

 <jsp:setProperty name="..." property="..." value="..."/>

 빈에 값을 저장합니다

 <jsp:getProperty name="..." property="..."/>

 빈의 값을 가져옵니다

 

:

19.05.01 JSP와 데이터베이스 연동 (22강~25강)

Back-End/JSP 2019. 5. 1. 16:41

-데이터베이스를 연동하는 3가지 방법-

 

 

 

  1.JSP내에서 데이터베이스 연동하는 방법


  2.JSP로 받아서 자바(DAO)클래스를 이용해서 데이터베이스에 넣고 빼는 방법
   (가장 많이 사용하는 방법)

 

  3. 커넥션풀을 이용해서 데이터베이스에 자료를 집어넣는 방법

 

 

 

Ojdbc14.jar : 자바와 데이터베이스를 연결하기 위한 파일

ojdbc6.jar

 

 

 

 

-예제 및 출력 결과-

 

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
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<center>
    <h2>회원 가입</h2>
    <body>
        <form action="MemberJoinProc.jsp" method="post">
            <table width="500" border="1">
 
                <tr height="50">
                    <td width="150" align="center">아이디</td>
                    <td width="350" align="center"><input type="text" name="id"
                        size="40" placeholder="id를 넣으세요."></td>
                <tr height="50">
                    <td width="150" align="center">패스워드</td>
                    <td width="350" align="center"><input type="password"
                        name="pass1" size="40" placeholder="비밀번호는 영문과 숫자만 넣어주세요."></td>
                <tr height="50">
                    <td width="150" align="center">패스워드 확인</td>
                    <td width="350" align="center"><input type="password"
                        name="pass2" size="40"></td>
                <tr height="50">
                    <td width="150" align="center">이메일</td>
                    <td width="350" align="center"><input type="email"
                        name="email" size="40" placeholer></td>
                <tr height="50">
                    <td width="150" align="center">전화번호</td>
                    <td width="350" align="center"><input type="tel" name="tel"
                        size="40"></td>
                <tr heigth="50">
                    <td width="150" align="center">당신의 관심분야</td>
                    <td width="350" align="center"><input type="checkbox"
                        name="hobby" value="캠핑">캠핑 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="등산">등산 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="영화">영화 &nbsp;&nbsp; <input
                        type="checkbox" name="hobby" value="독서">독서 &nbsp;&nbsp;</td>
                </tr>
                <tr heigth="50">
                    <td width="150" align="center">당신의 직업은</td>
                    <td width="350" align="center"><select name="job">
                            <option value="교사">교사</option>
                            <option value="변호사">변호사</option>
                            <option value="의사">의사</option>
                            <option value="기술사">기술사</option>
                    </select></td>
                </tr>
                <tr height="50">
                    <td width="150" align="center">당신의 연령은</td>
                    <td width="350" align="center"><input type="radio" name="age"
                        value="10">10대 &nbsp;&nbsp; <input type="radio" name="age"
                        value="20">20대&nbsp;&nbsp; <input type="radio" name="age"
                        value="30">30대&nbsp;&nbsp; <input type="radio" name="age"
                        value="40">40대&nbsp;&nbsp;</td>
                </tr>
 
                <tr height="50">
                    <td width="150" align="center">하고싶은말</td>
                    <td width="350" align="center"><textarea rows="5" cols="40"
                            name="info"></textarea></td>
                </tr>
 
                <tr height="50">
                    <td align="center" colspan="2"><input type="submit"
                        value="회원 가입"> <input type="reset" value="취소">
            </table>
        </form>
</center>
</body>
</html>
 
 
cs

 

 

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
package model;
 
public class MemberBean { //자바빈 클래스
    
    private String id;
    private String pass1;
    private String pass2;
    private String email;
    private String tel;
    private String hobby;
    private String job;
    private String age;
    private String info;
    
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPass1() {
        return pass1;
    }
    public void setPass1(String pass1) {
        this.pass1 = pass1;
    }
    public String getPass2() {
        return pass2;
    }
    public void setPass2(String pass2) {
        this.pass2 = pass2;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getHobby() {
        return hobby;
    }
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
    
    
    
}
 
cs

 

 

 

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
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
 
    <% 
    request.setCharacterEncoding("EUC-KR"); //한글 처리
    
    //취미 부분은 별도로 읽어들여 다시 빈클래스에 저장
    
    String [] hobby = request.getParameterValues("hobby");
    //배열에 있는 내용을 하나의 스트림으로 저장
    String texthobby = "";
    
    for(int i =0; i< hobby.length; i++)
    {
        texthobby += hobby[i]+" "//취미를 배열을 사용해 하나씩 출력해서 texthobby에 넣는다.
    }
%>
 
    <!-- useBean을 이용하여 한꺼번에 데이터를 받아옴 -->
    <!-- 맵핑 시키시오 -->
    <jsp:useBean id="mbean" class="model.MemberBean">
        <jsp:setProperty name="mbean" property="*" />
    </jsp:useBean>
 
    <% 
    mbean.setHobby(texthobby); //기존 취미는 주소번지가 저장되기에 위에 배열의 내용을 하나의 스트림으로 저장한 변수를 다시 입력
    
    //오라클에 접속하는 소스를 작성
    String id = "system";
    String pass = "123456";
    String url = "jdbc:oracle:thin:@localhost:1521:XE";  //자신의 컴퓨터에 DB가 있으면 localhost 사용,다른 컴퓨터면 ip주소 적기
                                                        //오라클의 포트 1521, 전역데이터베이스 XE 적기
                                                        //접속 URL
                                                        
    try
    {
        //1.해당 데이터베이스를 사용한다고 선언 (클래스를 등록 = 오라클을 사용)
        Class.forName("oracle.jdbc.driver.OracleDriver");
        //2. 해당 데이터 베이스에 접속
        Connection con = DriverManager.getConnection(url,id,pass);
        //3. 접속후 쿼리준비하여 쿼리를 사용하도록 설정
        String sql = "insert into member values(?,?,?,?,?,?,?,?)"//8개의 값이 들어간다.
        //쿼리를 사용하도록 설정
        PreparedStatement pstmt = con.prepareStatement(sql); //jsp 에서 쿼리를 사용하도록 설정
        // ?에 맞게 데이터를 맵핑
        pstmt.setString(1, mbean.getId()); //SQL의 insert to values에 넣을 값들.
        pstmt.setString(2, mbean.getPass1());
        pstmt.setString(3, mbean.getEmail());
        pstmt.setString(4, mbean.getTel());
        pstmt.setString(5, mbean.getHobby());
        pstmt.setString(6, mbean.getJob());
        pstmt.setString(7, mbean.getAge());
        pstmt.setString(8, mbean.getInfo());
        //4. 오라클에서 쿼리를 실행 하시오.
        pstmt.executeUpdate(); //insert, update, delete 시 사용하는 메소드
        
        //5. 자원 반납
        con.close();
        
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
 
    
%>
 
    오라클에 접속 완료 ~
 
</body>
</html>
cs

 

 

 

: