본문 바로가기
Programming/Java

useBean을 이용한 JSP 계산기 파일 단순화

idea: Java코드는 가변성 높음 -> JSP 점점 복잡 可 -> 단순화 필요 -> useBean 사용

 

 

 

 

서버 실행용 HTML을 다음과 같이 작성한다. (newCalcForm.html)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 useBean 이용한 jsp 간소화</title>
</head>
<body>
	<h2>계산기 use bean</h2>
	<hr>
	<form method="post" action="calc.jsp">
		<input type = "text" name = "n1" size ="10"><select name="op">
			<option>+</option>
			<option>-</option>
			<option>*</option>
			<option>/</option>
		</select><input type="text" name="n2" size="10">
		<input type="submit" value="실행">
	</form>		
</body>
</html>

action부분에 "calc.jsp" 입력으로 jsp 실행을 유도한다.

 

 

 

 

자바코드 작성용으로 Calculator 클래스를 src/main/java에 생성한다.

 

package ch07;

public class Calculator {
	private int n1;
	private int n2;
	private String op;
	
	public long calc() {
		long result = 0;
		switch(op) {
		case "+": result = n1 + n2; break;
		case "-": result = n1 - n2; break;
		case "*": result = n1 * n2; break;
		case "/": result = n1 / n2; break;
		}
	return result;
	}   // 일단 여기까지 기존 jsp에 들어갔던 코드 작성을 마무리한다.

// 필드값이 모두 private이므로 이에 대한 호출 유연성이 필요하다. 그러므로
// 이 밑 부분은 Source -> generate getter and setter 전체 선택으로 자동작성한다.

	public int getN1() {
		return n1;
	}

	public void setN1(int n1) {
		this.n1 = n1;
	}

	public int getN2() {
		return n2;
	}

	public void setN2(int n2) {
		this.n2 = n2;
	}

	public String getOp() {
		return op;
	}

	public void setOp(String op) {
		this.op = op;
	}
}

 

 

 

자바코드는 java파일에 대부분이 작성되므로 useBean을 적용한 jsp 파일은 다음과 같이 단순해진다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%--useBean 방법을 사용하기 위해 아래 두 줄을 추가한다.--%>   
 <jsp:useBean id="calc" class="ch07.Calculator" />
 <jsp:setProperty name="calc" property="*" />
   
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 useBean</title>
</head>
<body>
<h2>계산 결과 useBean</h2>
<hr>
 <%--useBean을 사용한 호출--%>   
결과: <%=calc.calc() %>
</body>
</html>

 

 

이를 실행하면

 

 

 

jsp를 이용한 계산기가 되었다.

728x90
반응형

'Programming > Java' 카테고리의 다른 글

API(POST, PUT, DELETE) 만들기  (1) 2023.10.25
AOP (Aspect-Oriented Programming) 관점지향 프로그래밍  (0) 2023.10.24
Servlet  (0) 2023.10.19
Javascript를 넣은 회원가입창 만들기  (1) 2023.10.18
[Java web] Hello JSP  (2) 2023.10.17