728x90
반응형
자바빈즈
- JSP 코드에서 JAVA 언어의 사용을 최소화하기위해 사용
- jsp페이지에서 화면을 표현하기 위한 계산식이나 자료들의 처리를 담당하는 자바 코드를 따로 분리하여 작성한 것
빈즈(.JAVA)는 클래스 구조
- private 멤버변수
- getter, setter
- 기본 생성자☆
<jsp:useBean .../> 사용
id 속성 : 인스턴스명
class 속성 : 클래스(자바 빈즈) 명, 패키지 경로도 반드시 포함
scope 속성 : 유효 범위
<jsp:useBean id="test" class="ClassName" scope="page" />
이 코드는//scop는 자바 빈즈 유효 범위 기본값 page
<% ClassName test=new ClassName();%> 이와 같은 의미 입니다.
<jsp:setProperty .../> 사용
자동 매핑을 위해서
멤버변수명 ==JSP 변수명(name속성의 값)
lb.setId(사용자가 입력 id 값);
lB.setPw(request.getParameter("pw"));
<jsp:useBean id="test" class="ClassName" scope="application />
<jsp:setProperty name="test" property="name" value="Dev" />
<% test.setName("Dev"); %> // 이런식으로 클래스에 Dev라는 이름 추가하라는 뜻과 같습니다.
<jsp:getProperty .../> 사용
<jsp:useBean id="test" class="ClassName" scope="application" />
<jsp:getProperty name="test" property="name" /> 코드의 의미
<%= test.getName();%>
<예제>
main.jsp
<%@page import="test.MemberBean"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="mmb" class="test.MemberManagerBean" scope="session"/>
<jsp:useBean id="mb" class="test.MemberBean" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인 페이지</title>
</head>
<body>
<a href="form.html">등록 페이지로 가기</a>
<hr>
<ol>
<%
for (MemberBean v : mmb.selectAll(mb)) {
%>
<li><%=v.getMname()%> <%=v.getScore()%>점 <%=v.getGender()%></li>
<%
}
%>
</ol>
</body>
</html>
form.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="result.jsp" method="post">
이름 : <input type="text" name="mname"><br>
점수: <input type="text" name="score"><br>
성별 : <select name="gender"><br>
<option>여</option>
<option>남</option>
</select><br>
<input type="submit" value="등록하기">
</form>
</body>
</html>
result.jsp
<%@page import="test.MemberBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="mmb" class="test.MemberManagerBean" scope="session" />
<jsp:useBean id="mb" class="test.MemberBean" />
<jsp:setProperty property="*" name="mb"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>등록페이지</title>
</head>
<body>
<%
mmb.insert(mb);
MemberBean data = mmb.selectOne(mb);
%>
<table border="2">
<tr>
<td>이름</td>
<<td><%=data.getMname()%></td>
</tr>
<tr>
<td>점수</td>
<td><%=data.getScore()%></td>
</tr>
<tr>
<td>성별</td>
<td><%=data.getGender()%></td>
</tr>
</table>
<hr>
<a href="main.jsp">메인으로 돌아가기</a>
</body>
</html>
MemberBeans.java
package test;
public class MemberBean { //MemberVO
private String mname;
private int score;
private String gender;
public String getMname() {
return mname;
}
public void setMname(String mname) {
this.mname = mname;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
MemberManagerBean.java
package test;
import java.util.ArrayList;
public class MemberManagerBean { // MemgerDAO
ArrayList<MemberBean> datas= new ArrayList<MemberBean>();
public boolean insert(MemberBean mb) {
datas.add(mb);
return true;
}
public ArrayList<MemberBean> selectAll (MemberBean mb){
return datas;
}
public MemberBean selectOne(MemberBean mb) {
for(MemberBean data : datas) {
if(data.getMname()==mb.getMname()) {
return data;
}
}
return null;
}
}
728x90
반응형
'JSP' 카테고리의 다른 글
[JSP] MVC 패턴 - 로그인, 게시판 만들기 (0) | 2022.08.09 |
---|---|
[JSP] forward / redirect 특정페이지 이동방법 (0) | 2022.08.08 |
[JSP] application을 이용한 SNS 예제 (0) | 2022.08.02 |
[JSP] session을 이용한 장바구니 예제 (0) | 2022.08.02 |
[JSP] 내장 객체 request, response, out, session, application, exception (0) | 2022.08.02 |