WEB, 실전jsp강좌, 자바빈

빈(bean) 이란?

  • 반복적인 작업을 효율적으로 하기 위해 사용
  • java언어의 데이터(속성)와 기능(메소드)으로 이루어진 클래스
  • jsp 페이지를 만들고, 엑션태그를 이용하여 빈을 사용한다
  • 빈을 만든다 : getter,setter있는 class파일을 만든다 bean

빈을 사용하는 이유

  • JSP페이지에 뷰 부분과 로직 부분을 같이 작성하게되면 굉장히 복잡해지게 됩니다.

  • 그런 것을 피하기 위해 JSP 페이지의 로직부분을 모듈화해서 분리함으로써 프로그램의 효율을 높이는 것이 사용하는 목적입니다.

javabean


빈의 사용

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

// 위의 액션태그를 코드로 바꾸면 아래와 같다

Student student = (Student)reqeust.getAttribute("student");
if (student == null){
	student = new Student();
	request.setAttribute("student", student);
}
  • id : jsp페이지에서 자바빈 객체에 접근 할때 사용하는 이름
  • class : 패키지 이름을 포함한 자바빈 클래스의 완전한 이름을 입력
  • scope : 자바빈 객체가 저장될 영역을 지정

scope

  • page : 생성된 페이지 내에서만 사용 가능
  • request : 요청된 페이지 내에서만 사용 가능
  • session : 웹브라우저 생명주기와 동일하게 사용가능
  • application : 웹 어플리케이션 생명주기와 동일하게 사용 가능

  • 데이터 값 설정시 사용
<jsp:setProperty name="student" property="name" value="로꼬" />
// name : 빈이름, property : 속성이름, value : 데이터 값

<jsp:setProperty name="student" property="*" />
  • property속성의 값을 *로 지정하면 프로퍼티의 값을 같은 이름을 갖는 파라메터의 값으로 설정한다.

  • 데이터 값을 가져올때 사용 ```java

// name : 빈이름, property : 속성이름

---
### 예제
- beanEx.jsp
```java
<jsp:useBean id="student" class="com.javalac.ex.Student" scope="page"></jsp:useBean>


<jsp:setProperty name="student" property="name" value="로꼬" />
<jsp:setProperty name="student" property="age" value="26" />
<jsp:setProperty name="student" property="grade" value="4" />
<jsp:setProperty name="student" property="studentNum" value="10" />

이름 : <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" />
  • Student.java ```java package com.javalac.ex;

public class Student {

private String name;
private int age;
private int grade;
private int studentNum;

public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public int getGrade() {
	return grade;
}
public void setGrade(int grade) {
	this.grade = grade;
}
public int getStudentNum() {
	return studentNum;
}
public void setStudentNum(int studentNum) {
	this.studentNum = studentNum;
} } ```

Reference