ITWILL학원 : 23강 JSP기초 BY 정규태강사 1. 자바빈(JavaBean) (p245~)
2. 자바빈 설계규약
정리하자면
클래스는 public
멤버변수는 private
멤버변수마다 별도의 get/set메소드가 존재해야한다
기본생성자 있어야함 (public)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class Javabean1 { private String id; public String getId () { return id; } public void setId (String id) { this .id = id; } }
3. 자바빈사용방법
자바빈 객체를 사용하는 방법
자바빈 액션태그를 사용하는 방법
예시 파라미터값으로 가져오는 방법과 위의 자바빈사용방법 두가지 총 3가지를 비교해보자. 공통적으로 사용할 페이지는 form.jsp페이지이다
먼저 form페이지이다. 사용자가 id와 pw, 좋아하는 숫자를 입력할 수 있는 페이지 코드이다.
1 2 3 4 5 6 7 8 9 <fieldset > <legend > 사용자 정보입력</legend > <form action ="beanPro2.jsp" method ="post" > 아이디 : <input type ="text" name ="id" > <br > 비밀번호 : <input type ="password" name ="pw" > <br > 좋아하는 숫자 : <input type ="text" name ="num" > <br > <input type ="submit" value ="확인" > </form > </fieldset >
3-1. 자바빈이 아닌 파라미터값을 가져와서 사용하는 방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <% request.setCharacterEncoding ("UTF-8 ");String id = request.getParameter( "id ");String pw = request.getParameter( "pw ");int num = Integer.parseInt(request.getParameter( "num "));%> <%-- 파라미터값으로 출력 => 아이디 : <%=id %> , 비밀번호 : <%=pw %> 좋아하는 숫자 : <%=num %> --%><table border ="1" style ="text-align: center" > <tr > <td > 출력방식 </td > <td > 아이디</td > <td > 비밀번호</td > <td > 좋아하는 숫자</td > </tr > <tr > <td > 파라미터 이용</td > <td > <%=id %> </td > <td > <%=pw %> </td > <td > <%=num %> </td > </tr > <table >
3-2. 자바빈 클래스 생성 데이터를 한번에 들고 다니기 위해 Javabean.java
객체를 만들어야 자바빈 객체와 자바빈 액션태그를 사용할 수 있다. 자바페이지는 자바빈설계규약에 맞게 작성해야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 public class Javabean2 { private String id; private String pw; int num; public String getId () { return id; } public void setId (String id) { this .id = id; } public String getPw () { return pw; } public void setPw (String pw) { this .pw = pw; } public int getNum () { return num; } public void setNum (int num) { this .num = num; } @Override public String toString () { return "Javabean2 [id=" + id + ", pw=" + pw + ", num=" + num + "]" ; } }
3-3. 자바빈 객체 사용 자바빈 객체를 사용하여 Form페이지에서 입력받은 값을 화면에 출력하는 코드이다.
javabean타입의 객체생성 -> import생성
변수 Jb는 private이므로 get메서드와 set메서드로 접근해야함
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //1. javabean타입의 객체생성 -> import생성 Javabean2 jb = new Javabean2(); //2. 값 가져오기 : private이므로 get/set메서드로 접근. jb.setId(request.getParameter("id")); jb.setPw(request.getParameter("pw")); jb.setNum(Integer.parseInt(request.getParameter("num"))); //3. 값 출력 <table border ="1" style ="text-align: center" > <tr > <td > 자바빈 객체 이용</td > <td > <%=jb.getId() %> </td > <td > <%=jb.getPw() %> </td > <td > <%=jb.getNum() %> </td > </tr > </table >
3-4. 자바빈 액션태그 사용
액션태그방식은 html문법이며 공통으로 사용되는 메뉴들을(주로 페이지) 특정 공간에 추가한다.
해당 페이지가 java파일(서블릿)으로 컴파일 된 후에 include한다. 따라서 컴파일을 두번하게된다.
액션태그방식은 jsp가 java파일이 되고 거기에 include를 하고 class파일이 된다.
jsp:useBean태그의 속성중 하나인 scope를 이용하면 더욱 효과적이다.
scope 속성에 page, request, session, application값을 설정하면 해당 영역에 지정해서 저장가능하다.
scope 속성의 설정값이 없으면 기본 page에 저장된다.
3-4-1. jsp:useBean 태그 id =객체참조변수 class=사용할 클래스파일 경로(객체의 경로)
1 2 <jsp:useBean id =객체참조변수 class =사용할 클래스파일 경로(객체의 경로) /> // 객체아래 코드는 Javabean1 jb = new Javabean1();
3-4-2. jsp:setProperty 태그 3가지 속성이 있다.
property속성 : 자바빈 객체의 멤버변수(저장공간)
name속성 : 자바빈 객체의 레퍼런스( = jsp:useBean의 id값)
param속성 : 전달되는 파라미터값
1 2 3 jsp:setProperty property=변수명 name=객체생성 id와 동일한 값 param=파라미터값 //예시 <jsp:setProperty property ="id" name ="bean" param ="id" />
만약 setProperty에서 파라미터 가져올때 파라미터가 2개 이상인 경우는? property값과 param값이 동일하면 param값 생략가능하다.
1 2 3 4 5 6 <jsp:useBean id ="bean" class ="com.itwillbs.bean.Javabean1" /> <jsp:setProperty property ="*" name ="bean" param ="*" /> <! -- 여기서 property 값과 param 값이 동일하면 아래처럼 param 값 생략가능 -- > <jsp:setProperty property ="*" name ="bean" />
3-4-3. jsp:getProperty 태그 1 2 3 4 5 6 7 8 9 <jsp:getProperty property ="set했던변수와 동일한 변수명" name ="객체생성 id와 동일한 값" /> <br > //예시 <jsp:getProperty property ="id" name ="bean" /> <br > <% out.println ("자바빈 액션태그객체를 자바코드로 출력 : " + bean.getId ());%>
3-4-4. 액션태그 전체 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //1. 액션태그만드는 객체 <jsp:useBean id ="bean" class ="com.itwillbs.bean.Javabean2" /> //2. 파라미터값 저장(파라미터 모든 값을 저장하려면 * 아니면 각각 입력) <jsp:setProperty property ="*" name ="bean" /> //3. 파라미터값 출력 <jsp:getProperty property ="id" name ="bean" /> <jsp:getProperty property ="pw" name ="bean" /> <jsp:getProperty property ="num" name ="bean" /> //4. 데이터 처리 : 테이블사용 <table border ="1" style ="text-align: center" > <tr > <td > 자바빈 액션태그 이용</td > <td > <%=bean.getId() %> </td > <td > <%=bean.getPw() %> </td > <td > <%=bean.getNum() %> </td > <td > <%=bean.toString() %> </td > </tr > </table >