ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] 프로젝트로 배우는 자바 웹 프로그래밍 번외 계산기 만들기
    Languages/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

     

     

     

     

     

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

    반응형

    댓글

Designed by Tistory.