웹개발 교육/jsp
[50일] jsp (14) - 계산기
ewok
2022. 10. 7. 11:15
Frontend단과 backend단을 연결해볼 것이다. backend단은 Java Resources에서 관리하겠다.
이제부터 계산기를 한번 만들어 볼 것이다. JSP에서 메소드를 만들어서 하는 방법과 java에서 클래스를 만들어하는 방법(Frontend와 Backend 연결) 두 가지로 해보자
우선 JSP에서 메소드를 통해 만들어보자. 이 방법은 Frontend와 Backend단을 연결하는 것은 아니다.
Frontend단에 testbean이라는 폴더를 만들고 그 안에 computeForm.jsp를 만들자
computeForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computeForm.jsp</title>
</head>
<body>
<h3>* 계산기 *</h3>
<!-- 1) JSP 메소드 -->
<form action="computeok1.jsp">
<table border="1">
<tr>
<th>숫자1</th>
<td><input type="number" name="num1" size="5"></td>
</tr>
<tr>
<th>숫자2</th>
<td><input type="number" name="num2" size="5"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="계산">
</td>
</tr>
</table>
</form>
</body>
</html>
form이 전송되면 computeok1.jps로 넘어가게 해 놨으므로 이제 computeok1.jsp를 만들자
computeok1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computeok1.jsp</title>
</head>
<body>
<h3>* 계산 결과 *</h3>
<h4>1)JSP 메소드 호출</h4>
<%
int num1 = Integer.parseInt(request.getParameter("num1").trim());
int num2 = Integer.parseInt(request.getParameter("num2").trim());
out.print(num1 + "+" + num2 + "=" + add(num1, num2));
out.print("<hr>");
out.print(num1 + "-" + num2 + "=" + sub(num1, num2));
out.print("<hr>");
out.print(num1 + "*" + num2 + "=" + mul(num1, num2));
out.print("<hr>");
out.print(num1 + "/" + num2 + "=" + div(num1, num2));
out.print("<hr>");
out.print(num1 + "%" + num2 + "=" + mod(num1, num2));
out.print("<hr>");
%>
<%!
//JSP 메소드 작성 영역
public int add(int a, int b) {return a+b;}
public int sub(int a, int b) {return a-b;}
public int mul(int a, int b) {return a*b;}
public int div(int a, int b) {return a/b;}
public int mod(int a, int b) {return a%b;}
%>
</body>
</html>
이번에는 new 연산자를 통해 만들어보자
computeForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computeForm.jsp</title>
</head>
<body>
<h3>* 계산기 *</h3>
<!-- 1) JSP 메소드
<form action="computeok1.jsp">
-->
<!-- 2) new 연산자 -->
<form action="computeok2.jsp">
<table border="1">
<tr>
<th>숫자1</th>
<td><input type="number" name="num1" size="5"></td>
</tr>
<tr>
<th>숫자2</th>
<td><input type="number" name="num2" size="5"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="계산">
</td>
</tr>
</table>
</form>
</body>
</html>
computeok2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="net.testbean.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>computeok2.jsp</title>
</head>
<body>
<h3>* 계산 결과 *</h3>
<h4>2) new연산자를 이용해서 객체 생성 후 메소드 호출</h4>
<%
int num1 = Integer.parseInt(request.getParameter("num1").trim());
int num2 = Integer.parseInt(request.getParameter("num2").trim());
//객체 생성 new Compute()
//-> RAM의 heap 영역에 메모리가 할당되는 것
Compute comp = new Compute();
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>