Bean객체를 사용하여 파라미터를 주고받기.
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jsp에서 bean객체 사용하기</title> </head> <body> <h1>bean객체 사용법</h1> <h3><a href="./L01UseBean.jsp">bean에 값을 저장하고 불러오기</a></h3> <h3><a href="./L02Property.jsp">jsp태그를 이용해서 저장하고 불러오기</a></h3> <h3><a href="./L03AddMemberForm.jsp">제출한 양식을 bean으로 받아보기</a></h3> </body> </html> | cs |
이전에 request.getParameter를 이용하여 값을 주고받았던 방법에서,
이번에는 Beans객체를 이용하여 값을 주고받는 방식을 공부해보자.
우선 회원 정보를 저장하는 클래스 파일을 하나 만든다.
src/com.jsp.bean 패키지에 Member.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 48 49 50 51 52 53 54 55 | package com.jsp.bean; //Member는 데이터베이스의 Member table과 매칭 public class Member { private int num; private String id; private String pwd; private String name; private String email; private String phone; private char admin; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public char getAdmin() { return admin; } public void setAdmin(char admin) { this.admin = admin; } } | cs |
Member 클래스로부터 값을 저장하고 받아오기 위해서는 import를 해야만 했다.
그러나 jsp의 useBean을 이용하면 import 하지 않고도 값을 설정(set)하거나 가져올(get) 수 있다.
L01UseBean.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 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!--<%@ page import="com.jsp.bean.Member" %>--> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>import와 useBean의 차이</title> </head> <body> <jsp:useBean id="bean" class="com.jsp.bean.Member"/> <!-- import와 객체 생성이 생략되어 있어, 보다 명시적임. --> <h1>javaBean 객체 생성</h1> <% //Member bean = new Member(); bean.setId("jspLesson"); bean.setName("tako"); bean.setPhone("010-1234-5678"); %> <h3>bean객체 생성 완료</h3> <hr> <h1>Bean 출력</h1> <p><b>id: </b><%=bean.getId()%></p> <p><b>name: </b><%=bean.getName()%></p> <p><b>phone: </b><%=bean.getPhone()%></p> </body> </html> | cs |
다음은 jsp의 property를 이용해서 bean을 설정하고, 가져오는 방법이다.
L02Property.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 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>property를 이용해서 bean 설정하기</title> </head> <body> <jsp:useBean id="member" class="com.jsp.bean.Member"/> <h1>jsp property로 Member bean 설정하기</h1> <jsp:setProperty property="id" name="member" value="jspLesson"/> <!-- member.setId("jspLesson") --> <!-- frontend 개발자가 java 구문을 싫어해서 ->xml 형식이 더 편하다. --> <jsp:setProperty property="name" name="member" value="tako"/> <jsp:setProperty property="email" name="member" value="tako@gmail.com"/> <jsp:setProperty property="phone" name="member" value="010-1234-1234"/> <h3>설정 완료</h3> <hr> <h1>jsp property로 Member bean 가져오기</h1> <h3><jsp:getProperty property="id" name="member"/></h3> <h3><jsp:getProperty property="name" name="member"/></h3> <h1>el 태그로 가져오기 -> jstl(java구문을 jsp태그처럼 대신 처리)</h1> <h3>${member.email}</h3><!-- 가장 많이 사용하는 방법 --> <h3>${member["phone"]}</h3> </body> </html> | cs |
값을 설정하는 여러가지 방법중의 하나.
값을 받아올 때 el태그를 이용하는 방법이 있는데, 많이 사용하는 방법이므로 잘 알아두면 좋다.
<h3>${member.email}</h3><!-- 가장 많이 사용하는 방법 -->
나중에 jstl과 연동하여 사용하는 방법을 공부해볼 예정.
이전에도 여러 번 사용했던 회원가입 양식을 이용하여 Post 방식으로 넘어온 파라미터를 beans로 받아 출력해 보자.
L03AddMemberForm.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 49 50 51 52 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style type="text/css"> body{ font-family: Meiryo,굴림; } </style> <title>bean으로 parameter 받기</title> </head> <body> <h1>会員登録</h1> <form action="L04DetailMember.jsp" method="post"> <table> <tr> <td><label for="uNum">NUM </label></td> <td><input type="text" id="uNum" name="num" size=20 value="1"></td> </tr> <tr> <td><label for="uId">ID </label></td> <td><input type="text" id="uId" name="id" size="20" value="jspLesson"></td> </tr> <tr> <td><label for="uPwd">PWD </label></td> <td><input type="password" id="uPwd" name="pwd" size="20" value="admin1234"></td> </tr> <tr> <td><label for="uName">名前 </label></td> <td><input type="text" id="uName" name="name" size="20" value="tako"></td> </tr> <tr> <td><label for="uPhone">Phone </label></td> <td><input type="tel" id="uPhone" name="phone" size="20" value="010-1111-1111"></td> </tr> <tr> <td><label for="uEmail">E-mail </label></td> <td><input type="email" id="uEmail" name="email" size="20" value="takoyaki@gmail.com"></td> </tr> <tr> <td><label for="admin">管理者</label> <input type="radio" id="admin" name="admin" value="0" checked></td> <td><label for="normal">一般ユーザ</label> <input type="radio" id="noraml" name="admin" value="1"></td> </tr> </table> <h3><input type="submit" value="提出"></h3> </form> </body> </html> | cs |
이전과 크게 다를 것 없는 회원 가입 양식!
L04DetailMember.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 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>bean으로 파라미터 받기</title> </head> <jsp:useBean id="mem" class="com.jsp.bean.Member"/> <jsp:setProperty property="*" name="mem"/> <!-- 받아온 모든 파라미터를 set한다. --> <body> <h1>입력 받은 회원 정보를 bean으로 출력</h1> <table> <tr> <td>NUM</td> <td>${mem.num}</td> </tr> <tr> <td>ID</td> <td>${mem.id}</td> </tr> <tr> <td>PWD</td> <td>${mem.pwd}</td> </tr> <tr> <td>이름</td> <td>${mem.name}</td> </tr> <tr> <td>전화</td> <td>${mem.phone}</td> </tr> <tr> <td>메일</td> <td>${mem.email}</td> </tr> <tr> <td>관리자</td> <td>${mem.admin}</td> </tr> </table> </body> </html> | cs |
값을 받아와 출력하는 과정이 상당히 깔끔해졌다.
코드가 깔끔해진다는 것은 유지보수가 쉬워진다는 것과 동일한 말이다.
9행과 10행을 보면
Bean객체를 만들고 넘어온 파라미터를 받는 부분이다.
setProperty를 이용하면 넘어온 모든 파라미터를 데이터 타입에도 관계없이 편리하게 받을 수 있고,
아래와 같이 el태그를 이용하여 간편하게 출력할 수 있다.
'JSP > 기본다지기' 카테고리의 다른 글
[JSP] 페이징(Paging) ① [11월28일] (0) | 2016.11.29 |
---|---|
JSP 8일차 필기 (EL 태그) (0) | 2016.10.28 |
JSP 7일차 필기 (Cookie) (0) | 2016.10.26 |
JSP 6일차 필기 (Session을 이용한 로그인) (0) | 2016.10.25 |
JSP 6일차 필기 (Session) (0) | 2016.10.25 |