웹개발 교육/jsp

[50일] jsp (15) - Java Bean

2022. 10. 7. 11:50
목차
  1. Java Bean

Java Bean

이번에는 Java Bean이라는 것을 이용하여 만들어보겠다.

 

jsp페이지에 나열되는 자바 처리 로직은 디자인 코드와 함께 매우 복잡한 코드를 구성한다.

이로 인해 디자인 변경 시 자바 코드가 영향을 받아 오류가 자주 발생되며, 코드 수정 시 코드를 알아볼 수 없어 유지보수가 어렵다.

또한 작업 도중 자바 코드가 JSP 페이지에 반복적으로 사용될 수 있으며, 코드의 노출로 저작권 등 보안에 심각한 문제가 발생된다. 

 

이러한 반복되는 자바 코드들을 JAVA파일 안에 저장하여 사용하는 형태를 빈즈라고 한다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="net.testbean.*"%>

<jsp:useBean id="" class="" scope="page""></jsp:useBean>

 

bean을 사용하려면 이처럼 태그를 작성해줘야 한다. 이러한 태그를 액션 태그라고 한다.

<jsp:useBean id=""></jsp:useBean>      객체 생성(Object)
<jsp:forward page=""></jsp:forward>    페이지 이동
<jsp:include page=""></jsp:include>    공통 페이지 가져오기

여러 가지가 있지만 자주 사용하는 몇 가지만 적어봤다.

 

Java Bean도 객체를 생성하여 사용한다. 객체 생성은 태그 안에 속성을 적어주면 된다.

<jsp:useBean id="객체명" class="패키지명.클래스명" scope="page""></jsp:useBean>

 

scope에는 유효 범위가 있다.

scope="page"          현재 페이지에서만 유효. 생략 시 기본값
scope="request"       다른 페이지에서 공유
scope="session"       다른 페이지에서 공유
scope="application"   다른 페이지에서 공유
※ 참고
Java Bean(id)가 제대로 생성 안될 수도 있음.
해당 프로젝트 우클릭 -> Refresh, Validate
                       Project -> Clean 하고 테스트할 것!!

 

 

computeok3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="net.testbean.*"%>

<jsp:useBean id="comp" class="net.testbean.Compute" scope="page"></jsp:useBean>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>computeok3.jsp</title>
</head>
<body>
	<h3>* 계산 결과 *</h3>
	<h4>3) Java Bean을 이용해서 객체 생성 후 메소드 호출</h4>
<%
	int num1 = Integer.parseInt(request.getParameter("num1").trim());
	int num2 = Integer.parseInt(request.getParameter("num2").trim());
	
	out.print(num1 + "+" + num2 + "=" + comp.add(num1, num2));
	out.print("<hr>");
	out.print(num1 + "-" + num2 + "=" + comp.sub(num1, num2));
	out.print("<hr>");
	out.print(num1 + "*" + num2 + "=" + comp.mul(num1, num2));
	out.print("<hr>");
	out.print(num1 + "/" + num2 + "=" + comp.div(num1, num2));
	out.print("<hr>");
	out.print(num1 + "%" + num2 + "=" + comp.mod(num1, num2));
	out.print("<hr>");
%>

</body>
</html>

 


이번에는 다른 기능을 가진 계산기를 만들어보자

 

calcForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>calcForm.jsp</title>
</head>
<body>
	<h3>* 절대값/팩토리얼 구하기 *</h3>
	<form>
	  <table border="1">
	  <tr>
	    <th>숫자</th>
	    <td><input type="number" name="num" size="5"></td>
	  </tr>
	  <tr>
	    <td colspan="2">
	       <input type="submit" value="계산">
	    </td>
	  </tr>  
	  </table>
	</form>
</body>
</html>

 

calcok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@page import="net.testbean.*" %>

<jsp:useBean id="calc" class="net.testbean.CalcBean" scope="page"></jsp:useBean>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>calcok.jsp</title>
</head>
<body>
	<h3>* Java Bean 이용한 계산 결과 *</h3>
<%
	int num = Integer.parseInt(request.getParameter("num").trim());
	out.print("절대값 : " + calc.abs(num));
	out.print("<hr>");
	out.print("팩토리얼 : " + calc.fact(num));
%>	
	
</body>
</html>

참고로 팩토리얼 때문인지 음수를 입력하면 StackOverflowError가 발생한다.

'웹개발 교육 > jsp' 카테고리의 다른 글

[51일] jsp (17) - myweb 프로젝트(인트로 화면)  (0) 2022.10.11
[50일] jsp (16) - 성적 데이터베이스 관련 비즈니스 로직 구현  (0) 2022.10.07
[50일] jsp (14) - 계산기  (0) 2022.10.07
[49일] jsp (13) - 성적 페이지  (0) 2022.10.06
[48일] jsp (12) - request 내부 객체의 다양한 메소드  (0) 2022.10.05
  1. Java Bean
'웹개발 교육/jsp' 카테고리의 다른 글
  • [51일] jsp (17) - myweb 프로젝트(인트로 화면)
  • [50일] jsp (16) - 성적 데이터베이스 관련 비즈니스 로직 구현
  • [50일] jsp (14) - 계산기
  • [49일] jsp (13) - 성적 페이지
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • branch
  • sqld 합격
  • git bash
  • sqld 자격증
  • 브랜치
  • 버전 관리
  • base
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • 노랭이
  • SQLD
  • this
  • merge commit
  • 생성자
  • GIT
  • org.springframework.beans.factory.UnsatisfiedDependencyException

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[50일] jsp (15) - Java Bean
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.