JSP Bean

까만호랭·2023년 8월 21일
1

📌 JSP Beans 개념

JSP Beans는 JSP 기술에서 데이터와 로직을 분리하여 관리하기 위해 사용되는 자바 객체를 의미한다.


(html안에 있는 자바 구문을 빼내고 그 구문을 class로 만든다. 그 class가 beans가 된다. 이때 이 class를 사용하는 것은 클래스의 포함관계임)

📌 Beans 사용을 위해 지켜야 할 것

  • 반드시 클래스는 패키지화 되어야 한다.
  • 멤버변수는 property라고 부른다.
  • property 접근 제한자는 private를 사용한다.
  • 외부접근은 setter, getter를 사용한다.
  • Bean이 저장될 객체의 영역

    영역설명
    applicationpublic 느낌-범용적으로 유효
    requestprivate 느낌- 페이지에 있다 다른 곳으로 가서도 유효?
    sessionprotected 느낌 - session이 살아있을때까지 유효
    얘네들은 데이터를 ("key",value) 형식으로 담아둘 수 있지만 영향을 미치는 범위가 다르다.

    Beans 클래스

    package pack;
    
    public class Test11FormBean {   // 클라이언트에서 전달되는 값이 여러 개인 경우 FormBean을 사용(꼭 사용하는 것은 아니지만 사용하길 권장)
    	private String name;
    	private int kor;
    	private int eng;
    	
    	public String getName() {
    		return name;
    	}
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public int getKor() {
    		return kor;
    	}
    	
    	public void setKor(int kor) {
    		this.kor = kor;
    	}
    	
    	public int getEng() {
    		return eng;
    	}
    	
    	public void setEng(int eng) {
    		this.eng = eng;
    	}
    }

    Beans를 사용한 JSP

     <jsp:useBean id="bean" class="pack.Test11FormBean" />
    <%--   property="name"의 name은 setName, getName의 Name를 뜻함
     <jsp:setProperty property="name" name="bean"/>
    --%> 
    <jsp:setProperty property="*" name="bean"/> <%-- name,kor,eng 들을 여러번 적기 힘드니 "*"를 사용 --%>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    폼빈(FormBean)에 등록된 자료를 출력<br/>
    이름은 <jsp:getProperty property="name" name="bean"/><br/> <!-- 여기서의 bena을 formbean -->
    국어는 <jsp:getProperty property="kor" name="bean"/><br/>
    영어는 <jsp:getProperty property="eng" name="bean"/><br/>
    
    <jsp:useBean id="process" class="pack.Test11Process"/>
    <jsp:setProperty property="formBean" name="process" value="<%=bean %>"/>
    총점은 <jsp:getProperty property="tot" name="process"/><br/> <%-- get에서 이름을 만들어내야 여기서 읽을 수 있다. --%>
    평균은 <jsp:getProperty property="avg" name="process"/><br/> 
    
    </body>
    </html>

    🫘 JSP Bean 액션태그 사용하기

    <jsp:useBean id="이름" class="자바빈 클래스 이름" scope="범위"/>

    id : 생성할 객체의 이름을 정의(무조건 적어야함)
    class : 객체를 생성할 클래스명을 정의(패키지명.클래스명으로 설정)
    scope : 자바빈 객체가 공유되는 범위를 지정 (page가 default값)


    String message = request.getParameter("message");
    my.setMessage(message);

    의 코드는

    <jsp:setProperty property="message" name="my"/>

    와 같다.             여기서
    property : 값을 지정할 프로퍼티의 이름(프로퍼티란 자바빈에 저장되어있는 값)
    name : 프로퍼티의 값을 변경할 자바빈 객체의 이름, <jsp:useBean> 액션 태그의 id속성에서 지정한 값을 사용한다.


    <jsp:useBean>액션태그는 JSP 페이지에서 사용할 자바빈 객체를 지정한다.

    profile
    남들과 함께 발자국을 남기는 까만호랭

    0개의 댓글