Download presentation
Presentation is loading. Please wait.
Published byῬέα Παπακωνσταντίνου Modified 5년 전
1
JSP 빈즈 1.JSP 빈즈? JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를 빈즈로 작서아하는 것이 반드시 합리적 이라고는 할 수 없다. JSP에서 빈즈를 가장 많이 이용하는 겨우는 HTML Form을 처리하고 데이터베이스와 연동하는 부분이다. 2.JSP 빈즈 구성 JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를 빈즈로 작성하는 것이 반드시 합리적 이라고는 할 수 없다. JSP에서 빈즈를 가장 많이 이용하는 겨우는 HTML Form을 처리 하고 데이터베이스와 연동 하는 부분이다. ①<from action=a.jsp> <input type=text name=“username”> … ②<jsp:useBean id=“mb” class=“my.MemberBean”> <jsp:setProperty name=“mb” property=“username”> A.jsp 이름 확인 ③public setUsername(String username){ this.username=username; } DB [form.html] insert JSP Beans Class (My.MemberBeee select B.jsp ④public getUsername(){ Return username; } 이름 확인 ⑤<jsp:useBean id=“mb” class=“my.MemberBean”> <jsp:getProperty name=“mb” property=“username”> [B.jsp에서 출력]
2
JSP 빈즈 3. 빈즈 클래스 구성 4. JSP에서 빈즈 선언 [멤버 변수] [getter,setter 메서드]
Class XxxBean { //멤버 변수, DB 테이블의 컬럼 이름과 매칭된다. private String xxx; private int yyy; //생성자, 보통 멤버 변수들을 모두 설정하는 생성자를 이용한다. public XxxBean(String xxx, int yyy){ } //get, set 메서드, 멤버 변수 와 매칭된다. public <type> getXxx(){ return xxx; public void setXxx(String xxx) { this.xxx=xxx; [멤버 변수] Private로 선언해서 클래스 외부에서의 접근을 막는다. 접근방법은 getXxx,setXxx와 같은 이름을 사용해 접근해야한다. 멤버 변수 이름은 DB컬럼 이름과 동일하면 좋다. [getter,setter 메서드] 1. setXxx와 getXxx가 둘다 선언되어있어야하고 거기에 사용될 변수들도 멤버 변수로 꼭 선언되어있어야한다. 2. set? 이후에 시작되는 메서드 이름은 대문자로 시작하는것을 원칙으로한다. Ex) setName() [useBean 액션을 자바코드로 변환] MyBean mybean = (MyBean)request.getAttribute(“mybean”); If(mybean == null) { mybean = new MyBean(); request.setAttribute(:mybean”,mybean); } 4. JSP에서 빈즈 선언 <jsp:useBean id=“mybean” scope=“request” class = “MyBean” /> [useBean 액션 속성 목록] 액션 속성 설명 useBean Id 빈즈 클래스 인스턴스 이름으로 사용할 class 빈즈 클래스 클래스 이름으로 패키지 경로를 폼함한다. scope 빈즈 클래스 범위로 page,request, session, application 올 수 있다.
3
JSP 빈즈 5. JSP에서 빈즈값 설정 <jsp:setProperty name=“mybean” property=“userid” /> <jsp:setProperty name=“mybean” property=“userpasswd” /> [useBean 액션 속성 목록] 액션 속성 설명 setProperty Name 빈즈 클래스 인스턴스 이름으로 id 값에 설정한 변수 이름이다 Property 속성 값으로 빈즈 클래스의 set Xxx(Xxx는 속성 이름)메서드와 대응할 속성 값이다. “*”를 지정하면 모든 setXxx에 자동으로 대응하다. Name은 사용하려고 하는 빈즈 이름으로 useBean 액션에서 id로 지정한 이름에 해당한다. setProperty는 해당 빈즈의 setXxx 메서드를 자동으로 호출한다. 위의 예는 MyBean 클래스의 setUserid(String id)와 setUserpasswd(String passwd) 메서드가 호출되는 셈이다. 만일 HTML form 입력 항목이 20개라고 가정한면, 20행에 걸쳐 setProperty를 해야 할 것이다. 다소 불편할 수 있다. 하지만 JSP는 다음과 같이 모든 HTML form 양식 항목과 빈즈 클래스set 메서드를 대응시키는 방법을 제공한다. <jsp:setProperty name=“mybean” property=“*” /> 조금 싱겁다고 생각할 만큼 “*”하나로 모든 작업이 끝난다. 따라서 소스에서 반드시 명시적으로 setProperty를 사용해야 하는 경우가 아니라면 대부분”*”를 사용해도 상관없다. setProperty 액션은 다음의 소스 코드와 동일한 기능을 수행한다. <% mybean.setUserid(request.getParameter(“username”)); mybean.setPasswd(request.getParameter(“userpasswd”)); %>
4
JSP 빈즈 6. 빈즈에서 JSP로 값가져오기 <jsp:getProperty name=“mybean” property=“username” /> <jsp:getProperty name=“mybean” property=“userpasswd” /> getProperty는 HTML 중간에 위치할 수 있기 때문에 HTML로 화면을 구성하고, 실제로 데이터의 출력이 필요한 부분에 넣어주면 된다. 예를 들어, 테이블 구조에서 빈즈 값을 배치하는 방법은 다음과 같다. <TR><TD>이름</TD> <TD><jsp:getProperty name=“mybean” property=“userrname” /> </TD></TR> getProperty 역시 setProperty와 마찬가지로 자바 코드로 변환할 수 있는데, 앞선 코드를 getProperty 액션을 사용하지 않는 형식으로 바꾸면 다음과 같다. <TR><TD>ID</TD> <TD><%= mybean.getUsername() %> </TD></TR>
Similar presentations