JSP 자바빈


JavaBean은 Java 언어로 작성된 특수 Java 클래스이며 JavaBean API 사양을 준수합니다.

다른 Java 클래스와 비교하여 JavaBean의 독특한 특징은 다음과 같습니다.

  • 인수가 없는 기본 생성자를 제공합니다.

  • 직렬화가 필요하며 직렬화 가능 인터페이스를 구현합니다.

  • 다양한 읽기 및 쓰기 가능 속성이 있을 수 있습니다.

  • 일련의 "getter" 또는 "setter" 메소드가 있을 수 있습니다.


JavaBean 속성

JavaBean 객체의 속성은 액세스 가능해야 합니다. 이 속성은 사용자 정의 Java 클래스를 포함한 모든 합법적인 Java 데이터 유형일 수 있습니다.

JavaBean 객체의 속성은 읽기-쓰기, 읽기 전용 또는 쓰기 전용일 수 있습니다. JavaBean 객체의 속성은 JavaBean 구현 클래스에서 제공되는 두 가지 메소드를 통해 액세스됩니다:

方法描述
getPropertyName() 举例来说,如果属性的名称为myName,那么这个方法的名字就要写成getMyName()来读取这个属性。这个方法也称为访问器。
setPropertyName() 举例来说,如果属性的名称为myName,那么这个方法的名字就要写成setMyName()来写入这个属性。这个方法也称为写入器。

읽기 전용 속성은 getPropertyName() 메서드만 제공하고, 쓰기 전용 속성은 setPropertyName() 메서드만 제공합니다.


JavaBean 프로그램 예

StudentBean.java 파일은 다음과 같습니다.

package com.php;

public class StudentsBean implements java.io.Serializable
{
   private String firstName = null;
   private String lastName = null;
   private int age = 0;

   public StudentsBean() {
   }
   public String getFirstName(){
      return firstName;
   }
   public String getLastName(){
      return lastName;
   }
   public int getAge(){
      return age;
   }

   public void setFirstName(String firstName){
      this.firstName = firstName;
   }
   public void setLastName(String lastName){
      this.lastName = lastName;
   }
   public void setAge(int age) {
      this.age = age;
   }
}

StudentBean.java 파일을 컴파일합니다(마지막 예에서 사용됨).

$ javac StudentsBean.java

컴파일 후 StudentBean.class 파일을 구하여 <JSP Project>/WebContent/WEB-INF/classes/com/php에 복사합니다. 아래 그림은

DDBE2229-22EF-45A5-B64A-EA1B74C7F43E.jpg


Access JavaBean

<jsp:useBean> 태그를 사용하여 JSP에서 JavaBean을 선언한 후 사용할 수 있습니다. 선언 후 JavaBean 객체는 스크립트 변수가 되며 스크립트 요소나 기타 사용자 정의 태그를 통해 액세스할 수 있습니다. <jsp:useBean> 태그의 구문 형식은 다음과 같습니다.

<jsp:useBean id="bean 的名字" scope="bean 的作用域" typeSpec/>

그 중 특정 상황에 따라 범위 값은 페이지, 요청, 세션 또는 애플리케이션이 될 수 있습니다. id 값은 동일한 JSP 파일의 다른 <jsp:useBean>에 있는 id 값과 동일하지 않는 한 임의적일 수 있습니다.

다음은 <jsp:useBean> 태그의 간단한 사용법입니다:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>useBean 实例</title>
</head>
<body>

<jsp:useBean id="date" class="java.util.Date" /> 
<p>日期为:<%= date %>

</body>
</html>

다음 결과가 생성됩니다:

日期为:Tue Jun 28 15:22:24 CST 2016

액세스 속성 JavaBean 객체

<jsp:useBean> 태그 본문에 있는 <jsp:getProperty/> 태그를 사용하여 을 호출합니다. getter 메서드인 경우 <jsp:setProperty/> 태그를 사용하여 setter 메서드를 호출합니다. 구문 형식은 다음과 같습니다.

<jsp:useBean id="id" class="bean 编译的类" scope="bean 作用域">
   <jsp:setProperty name="bean 的 id" property="属性名"  
                    value="value"/>
   <jsp:getProperty name="bean 的 id" property="属性名"/>
   ...........
</jsp:useBean>

name 속성은 Bean의 id 속성을 나타냅니다. 속성 속성은 호출하려는 getter 또는 setter 메서드를 나타냅니다.

다음은 위의 속성 액세스 구문을 사용한 간단한 예입니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>get 和 set 属性实例</title>
</head>
<body>

<jsp:useBean id="students" 
                    class="com.php.StudentsBean"> 
   <jsp:setProperty name="students" property="firstName"
                    value="小强"/>
   <jsp:setProperty name="students" property="lastName" 
                    value="王"/>
   <jsp:setProperty name="students" property="age"
                    value="10"/>
</jsp:useBean>

<p>学生名字: 
   <jsp:getProperty name="students" property="firstName"/>
</p>
<p>学生姓氏: 
   <jsp:getProperty name="students" property="lastName"/>
</p>
<p>学生年龄: 
   <jsp:getProperty name="students" property="age"/>
</p>

</body>
</html>

위 JSP에 액세스하고 실행 결과는 다음과 같습니다.

学生名字: 小强

学生姓氏: 王

学生年龄: 10