티스토리 뷰
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<servlet>
<servlet-name>Calculator</servlet-name>
<servlet-class>Calculator</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Calculator</servlet-name>
<url-pattern>/calc</url-pattern>
</servlet-mapping>
</web-app>
Calculator.jsp
<%@ 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>Calculator</title>
</head>
<center>
<body>
<form name=form1 method=post action="calc">
<h1>계산기</h1>
<input type="text" name="num1" width="200" size="5"> <select
name="op">
<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>
</center>
</html>
Calculator.java
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 Calculator
*/
@WebServlet("/Calculator")
public class Calculator extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Calculator() {
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()
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;
// 클라이언트 응답시 전달 될 컨텐츠에 대한 mime type과 캐릭터셋 지정
response.setContentType("text/html; charset=euc-kr");
// 클라이언트 응답을 위한 출력 스트림 확보
PrintWriter out = response.getWriter();
// HTML form을 통해 전달 된 num1, num2 패러미터 값을 변수에 할당
// 이때 getParameter() 메소드는 문자열을 리턴하므로 숫자형 데이터의 경우 Integer.parseInt()를 사용
// request를 통해서 jsp 파일에 있는 num1, num2를 받아옴
num1 = Integer.parseInt(request.getParameter("num1"));
num2 = Integer.parseInt(request.getParameter("num2"));
op = request.getParameter("op");
// calc() 메소드 호출로 결과 받아옴
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("<br>"); //한줄 띄워줌
out.println("<input type=\"button\" value=\"되돌아가기\" onclick=\"history.back();\">"); //되돌아가기 버튼
out.println("</BODY></HTML>");
}
public int calc(int num1, int num2, String op) {
int result = 0;
switch (op) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
return result;
}
}
'FRONT-END > JSP' 카테고리의 다른 글
[JSP] ATTRIBUTE & SCOPE - 속성과 영역 (0) | 2018.04.12 |
---|---|
[JSP] 오류 예외처리 (0) | 2018.04.12 |
[JSP] 한글 처리 (0) | 2018.04.12 |
[JSP] 내장 객체 (1) | 2018.04.12 |
[JSP] 구구단 테이블 (0) | 2018.04.11 |
댓글