본문 바로가기

JSP

[JSP] 자바빈즈

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
반응형