JSP&Servlet) bean

1. 빈
- 반복적인 작업을 효율적으로 하기 위해 빈을 사용합니다. 빈이란 java언어의 데이터와 기능으로 이루어진 클래스입니다. jsp 페이지를 만들고, 액션태그를 이용하여 빈을 사용합니다. 빈의 내부 데이터를 처리합니다.
- 빈을 만든다는 것은 데이터 객체를 만들기 위한 클래스를 만드는 것입니다.

2. 빈 관련 액션 태그(useBean, setProperty, getProperty)
- 액션 태그 중에서 Bean관련한 태그가 있습니다. 주로 데이터를 업데이트하고 얻어오는 역할을 합니다.

- useBean : 특정 Bean을 사용한다고 명시 할 때 사용합니다.
<jsp:useBean id="student" class="com.javalec.ex.student: scope="page"/>

-Scope
  1. page : 생성된 페이지 내에서만 사용 가능 합니다.
  2. request : 요청된 페이지 내에서만 사용 가능 합니다.
  3. session : 웹브라우저의 생명주기와 동일하게 사용 가능 합니다.
  4. application : 웹 어플리케이션 생명주기와 동일하게 사용 가능 합니다.
<Student.java>
package com.example;

public class Student {
    private String name;
    private int age;
    private int grade;
    private int studentNum;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public int getGrade() {
        return grade;
    }

    public int getStudentNum() {
        return studentNum;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

    public void setStudentNum(int studentNum) {
        this.studentNum = studentNum;
    }
}


<bean.jsp>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="EUC-KR" %>
<jsp:useBean id="student" class="com.example.Student" scope="page"/>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <jsp:setProperty name="student" property="name" value="홍길동"/>
    <jsp:setProperty name="student" property="age" value="13"/>
    <jsp:setProperty name="student" property="grade" value="6" />
    <jsp:setProperty name="student" property="studentNum" value="7"/>

    이름 : <jsp:getProperty name="student" property="name"/> <br/>
    나이 : <jsp:getProperty name="student" property="age"/><br/>
    학년 : <jsp:getProperty name="student" property="grade"/><br/>
    번호 : <jsp:getProperty name="student" property="studentNum"/><br/>
</body>
</html>

3. JDBC
- JAVA 프로그램에서 SQL문을 실행하여 데이터를 관리하기 위한 JAVA API입니다. JDBC의 특징은 다양한 데이터 베이스에 대해서 별도의 프로그램을 만들 필요 없이, 해당 데이터 베이스의 JDBC를 이용하면 하나의 프로그램으로 데이터 베이스를 관리할 수 있습니다.
- JDBC 드라이버 로드( DriverManager ) -> 데이터베이스 연결( Connection ) -> SQL문( Statement ) -> 데이터베이스 연결 해제( ResultSet )
<memberData.jsp>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%!
    Connection connection;
    Statement statement;
    ResultSet resultSet;

    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1525:admin";
    String uid = "admin";
    String upw = "admin";
    String query = "select * from member";
%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        try{
            Class.forName(driver);
            connection = DriverManager.getConnection(url, uid, upw);
            statement = connection.createStatement();
            resultSet = statement.executeQuery(query);

            while(resultSet.next()){
                String id = resultSet.getString("id");
                String pw = resultSet.getString("pw");
                String name = resultSet.getString("name");
                String phone = resultSet.getString("phone");

                out.println(id+"/"+pw+"/"+name+"/"+phone+"<br/>");
            }
        }catch (Exception e){
            e.printStackTrace();
        } finally {
            try{
                if(resultSet != null) resultSet.close();
                if(statement != null) statement.close();
                if(connection != null) connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    %>
</body>
</html>


4. DAO, DTO

DAO(Data Access Object) : 데이터 베이스에 접속해서 데이터 추가, 삭제, 수정 등의 작업을 하는 클래스 입니다. 일반적인 JSP 혹은 Servlet 페이지 내에 위의 로직을 함께 기술할 수도 있지만, 유지보수 및 코드의 모듈화를 위해 별도의 DAO클래스를 만들어 사용합니다.

DTO(Data Transfer Object) : DAO 클래스를 이용하여 데이터 베이스에서 데이터를 관리할 때 데이터를 일반적인 변수에 할당하여 작업 할수도 있지만, 해당 데이터의 클래스를 만들어 사용합니다.

댓글 없음:

Powered by Blogger.