반응형

 

자바빈즈

자바빈즈(DTO, VO = 자바의 데이터 전송객체와 동일)
: 데이터를 저장하여 요청하는 곳에 데이터를 전송하는 역할을 하는 데이터 구조체 클래스
- html의 form요소의 name속성, 데이터베이스 테이블의 컬럼명과 일치시켜주는 것이 좋다.
자바빈즈 작성 규칙
- 기본생성자가 있어야 함.
- 모든 멤버 변수의 접근 제어자는 private
- 모든 멤버 변수에 접근 가능한 public getter, setter메소드가 존재해야 함.

<jsp:useBean> 액션태그

- 자바빈즈나 빈 객체 or 자바 내장 패키지를 사용하기 위한 태그
- 객체생성
SYNTAX 
<jsp:useBean id="객체명 class="경로포함.클래스명" scope="영역"/>


id: 객체명이라고 생각하면 된다.
class : 경로포함.클래스명까지 기술. 경로의 시작은 대부분 src아래의 package명부터 기술
scope : 범위, 영역을 의미함. 기본값은 page
ex)
<jsp:useBean id="person" class="com.test.Person"/>
위의 예시를 자바 코드로 변경하면
-----------.java파일(클래스) -----------
package com test;
class Person{}
-----------.jsp(파일) -----------
<%@ page import="com.test.Person"%>
<% Person person = new Person(); %>
-----------.jsp(파일) -----------
또는
<% com.test.Person person = new com.test.Person(); %>
----------------------

scope

-----scope속성의 범위의 값: (객체에 대한 생명주기 설정)
page : 해당 페이지가 클라이언트에게 서비스를 제공하는 동안 유효. (생략값 - default)

request : 클라이언트의 요청이 처리되는 동안 유효.
(요청을 주는 곳에서 요청을 처리하고 응답을 완료하기 전까지 살아있는 객체), parameter들이 request에 먼저 담김

session : 세션이 유지되는 동안 유효. ex)로그인 유지
(해당 도메인에 연결이 된 순간부터 해당 도메인을 영어놓은 전체 브라우저 창이 닫길 동안까지 유효한 객체. 단, 세션객체를 강제로 삭제하는 경우는 제외)

application : 웹 어플리케이션이 실행되고 있는 동안 유효.(웹 서버가 꺼지기 전까지 유효)

파일을 생성 또는 추가하는 우선 순위

1. lib파일들 (.jar) : src/main/webapp/WEB-IF/lib 폴더 안에 추가
2. class파일들(.java) : src/main/java => 패키지 필요한 경우는 해당 패키지까지 추가
ㄴ컴파일까지 이루어져야함
3. html, jsp, css, js파일들
4. web.xml에 필요한 코드들 추가

08_02_useBean02.jsp
Calculator.java
08_02_useBean02.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>
	<jsp:useBean id="bean" class="com.dao.Calculator"/>
	<%
		int m = bean.process(5);
		out.print("5의 3제곱 : " + m);
		%>
</body>
</html>​
Calculator.java

package com.dao;

public class Calculator {
	public int process(int a) {
		return a*a*a;
	}
}
08_02_useBean03.jsp
08_02_useBean04.jsp
Person.java
08_02_useBean03.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>
	<jsp:useBean id="person" class="com.dto.Person"/>
<%-- 	<jsp:useBean id="person" class="com.dto.Person" scope="request"/> --%>
	<p> 아이디 : <%=person.getId() %></p>
	<p> 이 름 : <%=person.getName() %></p>
</body>
</html>​
08_02_useBean04.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>
<%-- 	<jsp:useBean id="person" class="com.dto.Person"/> --%>
	<jsp:useBean id="person" class="com.dto.Person" scope="request"/>
	<p> 아이디 : <%=person.getId() %></p><br>
	<p> 이 름 : <%=person.getName() %></p><hr>
		<%
			person.setId(20182005);
			person.setName("고희동");
		%>
	<p> 아이디 : <%=person.getId() %></p><br>
	<p> 이 름 : <%=person.getName() %></p><hr>
	<jsp:include page="08_02_useBean03.jsp"/>
</body>
</html>
Person.java

package com.dto;

public class Person {
	private int id= 20181004;
	private String name = "개똥이";
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
f
<%@ 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>
	<jsp:useBean id="memberBean" class="com.dto.MemberBean"/>
	<!-- 	property: 멤버 변수명을 의미함 -->
	<jsp:setProperty name="memberBean" property="id" value="2"/>
<%-- 	<% memberBean.setId(2); %> --%>
	
	<%="아이디: " + memberBean.getId()%><br>
	이름 : <jsp:getProperty property="name" name="memberBean"/><br>
	<%-- 	<% memberBean.getName(); %> --%>
</body>
</html>​
MemberBean.java

package com.dto;

public class MemberBean {
	private int id ;
	private String name ="이루마";
	private String[] hobby = new String[3];
	
//	public MemberBean(){}
	
	
	public int getId() {
		return id;
	}
	public String[] getHobby() {
		return hobby;
	}
	public void setHobby(String[] hobby) {
		this.hobby = hobby;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}
반응형

+ Recent posts