본문 바로가기
자바과정/JSP

JSP 기초 1일차

by Parkej 2021. 3. 5.
디렉토리 (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

댓글