액션태그의 종류
1. include
2. forward
3. useBean
4. setProperty
5. getProperty
6. plug-in
자바 빈즈(JavaBeans)
JSP프로그래밍의 단점
1. jsp 페이지를 이해하기 어려워진다.
2. jsp페이지 내에 작성된 프로그램 코드는 다시 사용하기가 어렵다.
jsp가 복잡한 자바코드로 구성되는 것을 가능한 한 피하고
jsp페이지에는 HTML과 같은 쉽고 간단한 코드만 구성할 수 있도록 하기위해 자바빈즈 사용
자바 빈즈
JSP안의 수많은 자바 코드들이 담당했던 일들을 독립적으로 처리하기 위한 부품과도 같은 역할을 함
이렇게 부품(=컴포넌트)을 만들어 놓고 JSP에서 호출하여 사용
자바빈즈란 java로 작성되어진 이러한 컴포넌트(Bean은 클래스형식(.java))들을 일반적으로 일컫는 단어.
3. useBean
4. setProperty
5. getProperty
는 Bean을 사용하기 위해 따로 제공하는 Bean 태그
3. useBean
jsp에서 자바빈즈를 사용할 때 쓰는 액션태그
자바 빈즈 (Java Beans)
DB와 JSP간에 데이터를 쉽게 주고받기 위해 사용하는 객체 개념
DB에서 정보를 가져올 때 가변적으로 배열의 역할을 하는 List 계열을 사용하는데
List에 각 정보가 맵핑돼있는 자바 변수들만 담은 클래스(정보의 세트인 셈)를 담는데
이러한 List를 자바 빈즈라한다.
Java Resources - src에 패키지를 만들어 클래스를 생성한다// 패키지로 묶어야 import해와서 쓰기가 좋다.
모든 변수는 jsp페이지와 이름을 동일하게 설정하고 private으로 보호해야하며 반드시 Getter와 Setter를 생성한다.
이렇게 생성된 데이터의 묶음을 getProperty() , setProperty() 메서드를 사용하여 ArrayList에?
JSP에서는 useBean 액션태그를 써야만 데이터가 자동으로 매핑되는데 Spring에서는 useBean을 쓰지 않고 Bean만 쓰고도 매핑이 된다.
Spring은 JSP를 보다 편리하게 사용할 수 있게 하는 플랫폼이라고 보면 된다.
MerberJoin.jsp
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 38 39 40 41 42 43 44 45 46 47 48 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <div style="text-align:center;"> <h2 align="center">회원가입</h2> <form align="center" action="MemberJoinProc.jsp" method="post"> <table align="center" width="500" border="1"> <tr height="50"> <td width="150" align="center">아이디</td> <td width="350" align="center"><input type="text" name="id" placeholder="id를 입력하세요" size="40"></td> </tr> <tr height="50"> <td width="150" align="center">패스워드</td> <td width="350" align="center"><input type="password" name="password" placeholder="비밀번호는 영문과 숫자만 넣어주세요" size="40"></td> </tr> <tr height="50"> <td width="150" align="center">이메일</td> <td width="350" align="center"><input type="email" name="email" size="40"></td> </tr> <tr height="50"> <td width="150" align="center">전화번호</td> <td width="350" align="center"><input type="tel" name="tel" size="40"></td> </tr> <tr height="50"> <td width="150" align="center">주소</td> <td width="350" align="center"><input type="text" name="address" size="40"></td> </tr> <tr height="50"> <td align="center" colspan="2"><input type="submit" value="회원가입"> <input type="reset" value="다시 입력"></td> </tr> </table> </form> </div> </body> </html> | cs |
MemberBean.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 38 39 40 41 42 43 44 45 46 47 | package bean; public class MemberBean { private String id;//데이터의 은닉성을 위해서 항상 private private String password; private String email; private String tel; private String address; //useBean을 쓰려면 반드시 jsp에서 사용하는 각 변수의 name을 따라야하고 //getter와 setter를 만들어줘야한다. //값을 입력하면 jsp가 알아서 클래스에 매핑해준다. public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } | cs |
MemberJoinProc.jsp (회원가입 처리페이지. useBean 액션태그를 사용하여 데이터를 자동 매핑 시킨다.)
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 38 39 40 41 42 43 44 45 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% request.setCharacterEncoding("UTF-8");//UTF-8쓰면 굳이 이 설정할 필요 없다... //request.getParameter(name)으로 name을 하나하나 받아 오면 데이터 종류가 많을 때 너무 번거로워진다. %> <!-- request로 넘어온 데이터를 자바 빈즈(List)와 매핑시켜주는 useBean --> <jsp:useBean id="mbean" class="bean.MemberBean"> <!-- MemberBean mbean = new Meberbean(); 객체 생성하는 것과 같다. id는 MemberBean의 참조변수와 유사한 효과. mbean으로 멤버변수에 접근하면 된다.--> <!-- 자바빈즈에 매핑시키는 과정도 useBean 태그 안에서 이루어진다. --> <!-- JSP의 데이터를 자바빈 클래스에 매핑--> <%-- <jsp:setProperty name="mbean" property="id"/> 자동으로 id만 매핑--%> <jsp:setProperty name="mbean" property="*" /><!--★자동으로 모두 매핑! --> </jsp:useBean> <h2> 아이디 : <jsp:getProperty property="id" name="mbean" /></h2> <h2> 패스워드 : <jsp:getProperty property="password" name="mbean" /></h2> <h2> 이메일 : <jsp:getProperty property="email" name="mbean" /></h2> <h2> 전화번호 : <%=mbean.getTel()%> <!--위 식은 너무 기니까 표현식에서 mbean에 접근하여 각 데이터 출력 가능 --> </h2> </body> </html> | cs |
실행화면
'JSP > JSP & Servlet ' 카테고리의 다른 글
서블릿(Servlet) (0) | 2019.04.30 |
---|---|
package javax.servlet does not exist 오류 (0) | 2019.04.30 |
액션 태그 jsp : forward (0) | 2019.04.30 |
액션 태그 jsp: include (0) | 2019.04.29 |
JSP의 지시자(Directive) (0) | 2019.04.29 |