Languages/jsp

[JSP] 프로젝트로 배우는 자바 웹 프로그래밍 번외 계산기 만들기

환테크 2021. 10. 25. 23:37
반응형

 

 

 

 

 

 

 

 

,

 

 

 

 

 

SERVLET -> CalcServlet.java

webapp -> calc.jsp

 

 

 

 

calc.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>
<H3>계산기</H3>
<HR>
<form name=form1 action="/WebProject/CalcServlet" method=post>
	<INPUT TYPE="text" NAME="num1" width=200 size="5">
	<SELECT NAME="operator"> 
		<option selected>+</option>
		<option>-</option>
		<option>*</option>
		<option>/</option>
	</SELECT>
	<INPUT TYPE="text" NAME="num2" width=200 size="5"> 
	<input type="submit" value="계산" name="B1"> <input type="reset" value="다시입력" name="B2">
</form>

</body>
</html>

 

 

 

calcServlet.java 

 

package com.jspbook;

// 패키지 import
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;


@WebServlet("/CalcServlet")
public class CalcServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	// GET 요청을 처리하기 위한 메서드
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// doPost()로 포워딩.
		doPost(request, response);
	}

	// POST 요청을 처리하기 위한 메서드
	// doGet()에서도 호출하고 있기 때문에 모든 요청은 doPost()에서 처리되는 구조이다.
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 변수 선언
		int  num1,num2;
		int result;
		String op;

		// 클라이언트 응답시 전달될 컨텐트에 대한 타잎 설정과 캐릿터셋 지정
		response.setContentType("text/html; charset=UTF-8");

		//클라이언트 응답을 위한 출력 스트림 확보
		PrintWriter out = response.getWriter();
		
		// HTML 폼을 통해 전달된 num1, num2 파라미터 값을 변수에 할당한다.
		//이때 getParameter() 메서드는 문자열을 리턴하므로 숫자형 데이터의 경우 Integer.parseInt() 를 통해 int로 변환 한다.
		num1 = Integer.parseInt(request.getParameter("num1"));
		num2 = Integer.parseInt(request.getParameter("num2"));
		op = request.getParameter("operator");

		result = calc(num1,num2,op);

		// 출력 스트림을 통해 화면을 구성 한다.
		out.println("<HTML>");
		out.println("<HEAD><TITLE>계산기</TITLE></HEAD>");
		out.println("<BODY><center>");
		out.println("<H2>계산결과</H2>");
		out.println("<HR>");
		out.println(num1+" "+op+" "+num2+" = "+result);
		out.println("</BODY></HTML>");
	}

	//실제 계산 기능을 수행하는 메서드
	public int calc(int num1, int num2, String op) {
		int result = 0;

		if(op.equals("+")) {
			result = num1 + num2;
		}
		else if(op.equals("-")) {
			result = num1 - num2;
		}
		else if(op.equals("*")) {
			result = num1 * num2;
		}
		else if(op.equals("/")) {
			result = num1 / num2;
		}
		return result;
	}
}

 

 

 

실행결과 1

 

 

 

실행결과2

 

 

 

 

 

계산기 완성 ~~~~*^^&***

반응형