Index.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>
<h1 align="center">계산기</h1>
<hr />
<form align="center" action="./Calc" method="post">
<input type="text" name="first"> <!-- 변수 1 -->
<select name="operater">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="%">%</option>
</select>
<input type="text" name="second"> <!-- 변수 2 -->
<input type="submit"value="계산" name="B1">
<input type="reset" value="다시입력"name="B2">
</form>
</body>
</html>
clacjava.java
package Controller;
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;
@WebServlet("/calcjava") //어노테이션.
public class calcjava extends HttpServlet {
/*
* public int calcjava(int first, int second, String op ) { int result = 0;
*
* if (op.equals("+")) { result = first + second;
*
* } else if (op.equals("-")) { result = first - second;
*
* } else if (op.equals("*")) { result = first * second;
*
* } else if (op.equals("/")) { result = first / second;
*
* } return result; }
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int first, second;
int result;
String op;
response.setContentType("text/html; charset=euc-kr");
PrintWriter out = response.getWriter();
first = Integer.parseInt(request.getParameter("first"));
second = Integer.parseInt(request.getParameter("second"));
op = request.getParameter("operater");
/* result = calcjava(first, second, op); */
Calc calc = new Calc(first,second,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(first + " " + op + " " + second + "= " + result);
out.println("</BODY></HTML>");
}
}
데이터 클래스
package Controller;
public class Calc {
private int first;
private int second;
private String op;
public Calc(int first,int second,String op) {
this.first = first;
this.second = second;
this.op = op;
}
public int getResult() {
int result = 0;
if (op.equals("+")) {
result = first + second;
} else if (op.equals("-")) {
result = first - second;
} else if (op.equals("*")) {
result = first * second;
} else if (op.equals("/")) {
result = first / second;
}
return result;
}
}
web.xml
<web-app>
<servlet>
<servlet-name>calcjava</servlet-name>
<servlet-class>Controller.calcjava</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>calcjava</servlet-name>
<url-pattern>/Calc</url-pattern>
</servlet-mapping>
</web-app>
결과
어노테이션 @WebServlet("/calcjava") 지정
form action="./calcjava" > 해당 경로를 일치시켜준다.
'Jsp' 카테고리의 다른 글
JSP forward를 이용하여 값을 넘겨보자! (0) | 2020.08.26 |
---|---|
JSP session을 값을 넘겨보자! (0) | 2020.08.26 |
JSP get 방식 한글깨짐 및 post 방식 한글깨짐 방지해보자 (0) | 2020.08.26 |
JSP scope 객체 종류 가 무엇이고 어떤 역할을 하는지 알아보자 (0) | 2020.08.26 |
JSP 서블릿을 이용한 계산기 만들기(xml) 1 (0) | 2020.08.25 |