본문 바로가기

개발자노트/웹

JSP - Servlet +HTML을 사용한 계산기예제 -3

HTML 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 - 3</title>
</head>
<body>

<h1>계산기</h1>
	<hr>
	<form method="post" action="/프로젝트명/CalcServlet2"> <!-- 사용자의 입력값을 CalcServLiet2를 통해 전달하여 수행 -->
		<input type="text" name="num1"> <select name="op"> <!-- name을 CalcServLiet2와 같게 써야함!! -->
			<option>+</option>
			<option>-</option>
			<option>x</option>
			<option>/</option>
		</select> <input type="text" name="num2"> <input type="submit"
			value="계산 결과보기">
	</form>

</body>
</html>

 

Servlet 코드

package test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CalcServlet2
 */
@WebServlet("/CalcServlet2")
public class CalcServlet2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CalcServlet2() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		int num1 = Integer.parseInt(request.getParameter("num1")); // num1의 요청값을 형변환하여 num1에 변수선언
		int num2 = Integer.parseInt(request.getParameter("num2")); // num2의 요청값을 형변환하여 num2에 변수선언
		String op = request.getParameter("op"); // op는 string 타입이기 때문에 형변환 필요X
		
		Calc calc=new Calc(num1,num2,op); // 들어온 값들을 갖고있을 객체생성
		int result=calc.getResult();		// 결과를 담을 변수선언
		
		
		PrintWriter out=response.getWriter(); // request에 대한 response로 화면에 print 하기 위해 사용
		out.println("<HTML>"); 
		out.println("<HEAD><TITLE>Calc - 4 Result </TITLE></HEAD>");
		out.println("<BODY><H1>RESULT PAGE</H1>");
		out.println("<HR>");
		out.println(num1+" "+op+" "+num2+" = "+result); // 각각의 변수와 OP를 이용해 계산하고 결과
		out.println("</BODY>");
		out.println("</HTML>");
	}

}