에러 탈출 일지

[JSP] 자바빈(JavaBean)을 이용한 예제(사용자 정보 입력 페이지) 본문

개발/JSP

[JSP] 자바빈(JavaBean)을 이용한 예제(사용자 정보 입력 페이지)

뉴NEW 2022. 10. 21. 13:21

< 자바빈(JavaBean) >

- JSP에서 사용하는 자바로 작성된 클래스

 


< 자바빈의 규칙  >

1. public으로 선언된 클래스이어야 한다.
2. 멤버변수는 private 선언하여야 한다.
3. public으로 선언된 getter/setter 메소드를 선언하여야 한다.
4. 생성자는 디폴트 생성자를 사용해야 한다. 생성자 오버로딩은 사용하지 않는다.

 


< 자바빈의 용어 >

- 자바 클래스 → 자바빈
- 멤버 변수 → 프로퍼티(property)

 


< 자바빈의 활용 >

- 프로퍼티는 폼의 입력태그의 name과 일치해야 한다.

 


파일 생성

자바빈 클래스를 생성하기 위해&nbsp; Java Resources 파일 안에 패기지 생성 &rarr;&nbsp; java 파일 생성

 

ClubUser.java

From.jsp

Pro.jsp 


 

 

package club;

// 자바빈 생성 → 자바 클래스
public class ClubUser {
	private String id;
	private String pwd;
	private String name;
	private int age;
	private String tel;
	private String email;
	private String addr;
	
	// 프로퍼티명에 따른 getter/setter 생성
	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 int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	
}

 

// Form 파일

<body>
	<h2>사용자 클럽 정보 입력 폼 페이지</h2>
	<form action="beanTest04Pro.jsp" method="post">
		아이디: <input type="text" name="id"><br>
		비밀번호: <input type="password" name="pwd"><br>
		이름: <input type="text" name="name"><br>
		나이: <input type="text"name="age"><br>
		전화번호: <input type="text" name="tel"><br>
		이메일: <input type="text" name="email"><br>
		주소: <input type="text" name="addr"><br>
		<input type="submit" value="입력완료"><br>
	</form>
</body>

※ 비밀번호는 input type="password"

 

 

< 1. 객체 생성 >

// Pro 파일

<body>
	<h2>클럽 정보 처리 페이지</h2>
	<% request.setCharacterEncoding("utf-8"); %>  // 한글 깨짐 해결
	
	<%--1. 객체 생성 --%>
	<%-- class = "패키지명.파일명" --%>
	<jsp:useBean id="clubUser" class="club.ClubUser"></jsp:useBean>

 

 

< 2. 프로퍼티에 파라미터 값을 삽입 > 방법 3 가지 中 택 1

	<%--2-1. clubBean 객체에 property의 파라미터의 값을 삽입, setter 메소드 호출 --%>
	<%-- setter에 프로퍼티 값 삽입 --%>
	<jsp:setProperty property="id" name="clubUser"/>
	<jsp:setProperty property="pwd" name="clubUser"/>
	<jsp:setProperty property="name" name="clubUser"/>
	<jsp:setProperty property="age" name="clubUser"/>
	<jsp:setProperty property="tel" name="clubUser"/>
	<jsp:setProperty property="email" name="clubUser"/>
	<jsp:setProperty property="addr" name="clubUser"/>
	--%>


	<%--2-2. clubBean 객체에 property의 파라미터의 값을 삽입, setter 메소드 호출 --%>
    
	<%--(1) * : 자바빈의 프로퍼티와 입력 태그에 name이 일치할 때 사용 --%>
	<jsp:setProperty property="*" name="clubUser"/>
	
	<%--(2)  프로퍼티와 파라미터의 값이 일치하지 않을 때: 따로 써서 일치 시켜주기--%>
	<jsp:setProperty property="id" param="sid" name="testBean"/>
	<jsp:setProperty property="name" param="sname" name="testBean"/>

(2) 프로퍼티(getter/setter명)와 파라미터의 값(입력 태그 name)이 일치 하지 않을 때,  param을 사용하여 일치 시켜준다.

 

 

 

< 3. 프로퍼티의 값을 출력 >

 

테이블 생성해서 출력 페이지 만들어주기

	<%-- 3. clubUser 객체에 property의 파라미터의 값을 받음, getter 메소드 호출 --%>
	<%-- getter을 이용하여 프로퍼티 값을 꺼내오기 --%>
	<table border="1">
		<tr>
			<th>아이디</th>
			<td><jsp:getProperty property="id" name="clubUser"/></td>
		</tr>
		<tr>
			<th>비밀번호</th>
			<td> <jsp:getProperty property="pwd" name="clubUser"/></td>
		</tr>
		<tr>
			<th>이름</th>
			<td><jsp:getProperty property="name" name="clubUser"/></td>
		</tr>
		<tr>
			<th>나이</th>
			<td><jsp:getProperty property="age" name="clubUser"/></td>
		</tr>
		<tr>
			<th>전화번호</th>
			<td><jsp:getProperty property="tel" name="clubUser"/></td>
		</tr>
		<tr>
			<th>이메일</th>
			<td><jsp:getProperty property="email" name="clubUser"/></td>
		</tr>
		<tr>
			<th>주소</th>
			<td><jsp:getProperty property="addr" name="clubUser"/></td>
		</tr>
	</table>
</body>