code/JSP
[JSP] servlet/서블릿을 이용한 계산기
shallot
2017. 4. 20. 15:01
servelt 생성은 new->servelt을 만드면 됩니다~
jsp는 WebContent에서 만들어 주세요!
첫번째 방법: 함수 호출
CalcServelt.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <h2 align="center">계산기</h2> <HR> <!-- 서블릿 버전 계산기 실행을 위해 계싼 버튼 클릭시 서블릿 호출 --> <center> <form name="f1" action=./calc method=post> <input type="text" name=num1 width="12" size="10"> <select name="operator"> <option selected>+</option> <option>-</option> <option>*</option> <option>/</option> </select> <input type="text" name=num2 width="12" size="10"> <input type="submit" value="계산" name="B1"> <input type="reset" value="다시 입력" name="B2"> </form> </center> </body> </html> |
CalcServlet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | import java.awt.print.Printable; 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 clac */ //@WebServlet("/clac") public class CalcServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public CalcServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // response.getWriter().append("Served at: // ").append(request.getContextPath()); doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // doGet(request, response); int num1, num2; int result; String op; response.setContentType("text/html; charset=euc-kr"); PrintWriter out = response.getWriter(); num1 = Integer.parseInt(request.getParameter("num1")); num2 = Integer.parseInt(request.getParameter("num2")); op = request.getParameter("operator"); // clac() 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; } } |
두번째 방법: 객체 생성 후
CalcServelt.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <h2 align="center">계산기</h2> <HR> <!-- 서블릿 버전 계산기 실행을 위해 계싼 버튼 클릭시 서블릿 호출 --> <center> <form name="f1" action=./calc method=post> <input type="text" name=num1 width="12" size="10"> <select name="operator"> <option selected>+</option> <option>-</option> <option>*</option> <option>/</option> </select> <input type="text" name=num2 width="12" size="10"> <input type="submit" value="계산" name="B1"> <input type="reset" value="다시 입력" name="B2"> </form> </center> </body> </html> |
CalcServlet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | import java.awt.print.Printable; 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 clac */ // @WebServlet("/clac") public class CalcServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public CalcServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // response.getWriter().append("Served at: // ").append(request.getContextPath()); doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // doGet(request, response); int num1, num2; int result; String op; response.setContentType("text/html; charset=euc-kr"); PrintWriter out = response.getWriter(); num1 = Integer.parseInt(request.getParameter("num1")); num2 = Integer.parseInt(request.getParameter("num2")); op = request.getParameter("operator"); // clac() Calc calc = new Calc(num1, num2, op); result = calc.getResult(); 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>"); } } class Calc { int num1,num2; int result; String op; public Calc(int num1, int num2, String op) { // TODO Auto-generated constructor stub this.num1=num1; this.num2=num2; this.op=op; } public int getResult() { // TODO Auto-generated method stub 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; } } |
참고로 java에서 실행되면 오류가 뜨시는 걸 볼 수 있습니다! 그러니 jsp파일에서 실행해주세요!