728x90
반응형
Java Beans = VO = DTO는 비슷한 기능을 한다.
데이터베이스와 연결하여 데이터를 관리하는 용도로 사용된다.
복잡하게 구성된 JSP 웹페이지에서 Java 소스 코드만 따로 뽑아 별도 작성함으로 JSP 웹페이지가 복잡해지는 것을 방지할 수 있다.
useBean 액션 태그 형식
<jsp:useBean id="객체명" scope="page|request|session|application"
class="클래스명" type="타입명"></jsp:useBean>
객체명
id 속성을 사용하여 지정한 객체명의 사용 용도
꺼낸 객체의 참조 변수명으로 사용
getAttribute( )로 값을 꺼낼 때 사용하는 이름
객체를 생성할 경우 보관소에 저장하는 key 값의 이름으로 사용
scope 속성
보관소를 지정
- page = JspContext(기본값)
- request = ServletRequest
- session = HttpSession
- application = ServletContext
class 속성
Java 객체를 생성하기 위해 사용할 클래스 이름을 지정할 때 선언
new 연산자를 사용하므로 인터페이스는 올 수 없고 반드시 패키지 이름을 포함해야 함
scope 속성에서 지정한 보관소에서 객체를 찾지 못하였을 경우 class의 값을 사용하여 인스턴스를 생성
생성된 객체는 scope 보관소에 자동으로 저장되며 class 속성을 선언하지 않을 경우 객체를 생성할 수 없게 됨
class 패키지 명명법
도메인이름.폴더이름.클래스이름
ex) com.test.MemberBean
type 속성
type 속성은 참조 변수에서 사용할 타입(클래스 또는 인터페이스)을 지정할 때 선언
이 속성을 사용할 때는 반드시 패키지 이름을 포함해야 하며 type 속성을 지정하지 않으면 class 속성의 값이 사용됨
Ex)
addMemberForm.jsp
<%@ 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>
<h2>회원 정보 입력 폼</h2>
<form action="addMember.jsp" method="post">
<table>
<tr>
<td>이름</td>
<td><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>아이디</td>
<td><input type="text" name="userid" size="20"></td>
</tr>
<tr>
<td>별명</td>
<td><input type="text" name="nickname" size="20"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="text" name="email" size="20"></td>
</tr>
<tr>
<td>전화번호</td>
<td><input type="text" name="phone" size="11"></td>
</tr>
<tr>
<td><input type="submit" value="전송"></td>
<td><input type="reset" value="취소"></td>
</tr>
</table>
</form>
</body>
</html>
MemberBean.class
package com.test;
public class MemberBean {
private String name;
private String userid;
private String nickname;
private String pwd;
private String email;
private String phone;
//값을 저장하기 위한 2가지 방법
//2. 겟터세터
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
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;
}
}
DTO처럼 회원정보를 Class로 만들어 일일히 request.getParameter를 사용하지 않아도 class객체를 통해 값에 접근할 수 있다.
addMember.jsp
<%@ 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");
%>
<jsp:useBean id="member" class="com.test.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="member"/>
<h2>입력 완료된 회원 정보</h2>
<table>
<tr>
<td>이름</td>
<td><jsp:getProperty property="name" name="member"/></td>
</tr>
<tr>
<td>아이디</td>
<td><jsp:getProperty property="userid" name="member"/></td>
</tr>
<tr>
<td>별명</td>
<td><jsp:getProperty property="nickname" name="member"/></td>
</tr>
<tr>
<td>비밀번호</td>
<td><jsp:getProperty property="pwd" name="member"/></td>
</tr>
<tr>
<td>이메일</td>
<td><jsp:getProperty property="email" name="member"/></td>
</tr>
<tr>
<td>전화번호</td>
<td><jsp:getProperty property="phone" name="member"/></td>
</tr>
</table>
</body>
</html>
728x90
반응형
'Spring > JSP' 카테고리의 다른 글
[JSP] JDBC 데이터노출 (0) | 2022.11.22 |
---|---|
[JSP] mysql-connector-j-8.0.31 설치 (0) | 2022.11.22 |
[JSP] 세션(Session)을 사용한 로그인과 로그아웃 (0) | 2022.11.21 |
[JSP] 세션(Session) (0) | 2022.11.21 |
[JSP] 쿠키(Cookie) (0) | 2022.11.21 |
댓글