디렉토리 (Calc.java, CalcServlet.java, Calc.jsp)
Dynamic Web Project 생성
-Java Resources
-src
-package
-Calc.java
-CalcServlet.java
Webcontent
-WEB-INF
-lib
-servlet-api.jar
-web.xml
-Calc.jsp
// JSP 코드
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- 액션 섭ㄹ릿 -->
<center>
<form name = form1 action = ./calc method=post>
<h2 align = "center"> 계산기</h2>
<hr color = "black">
<!-- 밑줄 그어야함 -->
<!-- 숫자 1 입력값 -->
<input type = "text" width=200 size = "5" name = "num1">
<!-- 연산 드롭다운 -->
<select name = "op">
<option selected>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<!-- 숫자 2 입력값 -->
<input type = "text" width=200 size = "5" name = "num2">
<!-- 버튼으로 연산결과 나타내기 -->
<input type = "submit" value ="계산" name="result">
<input type = "reset" value = "다시입력 " name="re">
</form>
</center>
</body>
</html>
// Servlet 부분
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CalcServlet
*/
//@WebServlet("/CalcServlet")
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;
// 클라 응답시 전달될 컨텐츠에 대한 mime type과 캐릭터셋 지정
response.setContentType("text/html; charset=euc-kr");
// 클라 응답을 위한 출력 스트림 확보
PrintWriter out = response.getWriter();
// 계산을 누르면 리퀘스트 scope로 scope에서 뽑아오는거임 (원리)
// HTML form을 통해 전달된 num1, num2 파라미터 값을 변수에 할당
// 이때 getParameter() 메서드는 문자열을 리턴하므로 숫자형 데이터의 경우
num1 = Integer.parseInt(request.getParameter("num1")); // num1 은 jsp에 안에 있는 html 인풋 텍스트 name임.
num2 = Integer.parseInt(request.getParameter("num2"));
op = request.getParameter("op");
//calc() 메서드 호출로 결과 받아옴.
// result = calc(num1,num2,op);
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>");
}
// 실제 계산 기능을 수행하는 메서드임
// 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;
// }
}
// Calc 클래스 부분
public class Calc {
private int num1;
private int num2;
private String op;
public Calc(int num1, int num2, String op) {
this.num1 = num1;
this.num2 = num2;
this.op = op;
}
public int getResult() {
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;
}
}
// Web.xml 부분
<servlet>
<servlet-name>CalcServlet</servlet-name>
<servlet-class>CalcServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CalcServlet</servlet-name>
<url-pattern>/calc</url-pattern>
</servlet-mapping>
--- 출력결과
반응형
'자바과정 > JSP' 카테고리의 다른 글
JSP 예습겸 Scope (0) | 2021.03.08 |
---|---|
JSP 오늘의 강의내용 끄적... (0) | 2021.03.08 |
JSP 구구단 (자바코드) (0) | 2021.03.08 |
이클립스에서의 JSP (0) | 2021.03.06 |
JSP 시작하기 전 환경설정 (2) | 2021.03.06 |
댓글