본문 바로가기

BackEnd/JSP

[JSP 웹 프로그래밍] 액션 태그 2 <jsp:... />

728x90
반응형

1. 자바빈즈

   ▷ 동적 콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스로 로직을 작성하는 방법

   ▷ JSP 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바코드를 따로 분리하여 작성하는 것

   ▷ JSP 페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성

 

◎ 자바빈즈 작성 시 규칙

   ▷ 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 함

   ▷ 인수가 없는 기본 생성자가 있어야 함

   ▷ 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 함

   ▷ 모든 멤버 변수인 프로퍼티는 getter/setter() 메소드가 존재해야 함

      ▶ getter() 메소드는 멤버 변수에 저장된 값을 가져올 수 있는 메소드이고,

          setter() 메소드는 멤버 변수에 값을 저장할 수 있는 메소드임.

 

◎ useBean 액션 태그

   ▷ JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그

   ▷ id 속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고, 객체가 발견되지 않으면 빈 객체를 생성


◎ useBean 액션 태그 속성

 

◎ useBean 액션 태그에 Date 클래스 사용해 현재 날짜와 시각 출력

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Action Tag</title>
</head>
<body>
	<jsp:useBean id="date" class="java.util.Date" />
	<p><%
			out.print("오늘의 날짜 및 시각");
		%>
	<p><%=date %>
</body>
</html>

<!-- 출력 : 
오늘의 날짜 및 시각
Tue Feb 28 10:23:51 KST 2023
 -->

 

◎ 자바빈즈 Calculator를 생성하고 useBean 액션 태그에 Calculator 클래스를 사용해 숫자 출력하기 예제

1. Calculator.java 생성
package ch04;

public class Calculator{
	public int process(int n) {
		return n*n*n;
	}
}​


2. useBin02.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Action Tag</title>
</head>
<body>
	<jsp:useBean id="bean" class="ch04.Calculator" />
	<%
		int m = bean.process(5);
		out.print("5의 3제곱 : " + m);
	%>
</body>
</html>

<!-- 출력 : 5의 3제곱 : 125 -->​



여기서 새로 생성한 자바 파일과 jsp 파일의 경로는 아래와 같이 지정하면 됩니다.

경로 지정

 

(2) setProperty 액션 태그

   ▷ useBean 액션 태그와 함께 자바빈즈의 setter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 저장하는 태그

   ▷ 폼 페이지로부터 전달되는 요청 파라미터의 값을 직접 저장하거나 자바빈즈의 프로퍼티로 변경하여 값을 저장할 수 있음

   ▷ 모든 자바빈즈 프로퍼티 이름과 동일하게 요청 파라미터를 설정할 수 있음

 


◎ setProperty 액션 태그 속성

 

◎ 자바빈즈 액션 태그의 사용법

1. 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름이 일치하는 경우

2. 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름이 일치하지 않는 경우

3. 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름이 모두 일치하는 경우

 

◎ setProperty 액션 태그에 자바빈즈 Person으로 아이디와 이름을 설정하여 출력하기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Action Tag</title>
</head>
<body>
	<jsp:useBean id="person" class="ch04.Person" scope="request" />
	<jsp:setProperty name="person" property="id" value="20182005" />
	<jsp:setProperty name="person" property="name" value="홍길동" />
	<p> 아이디 : <% out.println(person.getId()); %>
	<p> 이 름 : <% out.println(person.getName()); %>
</body>
</html>

<!-- 출력 : 
아이디 : 20182005
이 름 : 홍길동
 -->

 

◎ getProperty 액션 태그

   ▷ useBean 액션 태그와 함께 자바빈즈의 getter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 가져오는 태그


◎ 속성

 

◎ getProperty 액션 태그 자바빈즈 사용 예제(아이디, 이름 출력)

1. getProperty01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Action Tag</title>
</head>
<body>
	<jsp:useBean id="person" class="ch04.Person" scope="request" />
	<p> 아이디 : <jsp:getProperty name="person" property="id" />
	<p> 이 름 : <jsp:getProperty name="person" property="name" />
</body>
</html>

<!-- 출력 : 
아이디 : 20181004
이 름 : 홍길순
 -->​

 

2. getProperty02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Action Tag</title>
</head>
<body>
	<jsp:useBean id="person" class="ch04.Person" scope="request" />
	<jsp:setProperty name="person" property="id" value="20182005" />
	<jsp:setProperty name="person" property="name" value="홍길동" />
	<p> 아이디 : <jsp:getProperty name="person" property="id" />
	<p> 이 름 : <jsp:getProperty name="person" property="name" />
</body>
</html>

<!-- 출력 : 
아이디 : 20182005
이 름 : 홍길동
 -->​

 

dto : data Transfer Object는 계층 간 데이터 교환을 하기 위해 사용하는 객체
        dto는 로직을 가지지 않는 순수한 데이터 객체(getter&setter만 가진 클래스)
dao : data Access Object 는 데이터베이스의 data에 접근하기 위한 객체
        DataBase에 접근하기 위한 로직&비즈니스 로직을 분리하기 위해 사용

 

자바빈즈는 자바의 변수들과 getter/setter를 이용해서 JSP 코드들로 불러올 수 있습니다.

class들과 메서드들을 불러와서 body에서 사용할 수 있네요!

 

JSP는 HTML에서 JavaScript 대신 JAVA를 사용하는 것 같네요!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형