뷰 구현: calcForm
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기-컨트롤러</title>
</head>
<body>
<h2>계산기-컨트롤러</h2>
<hr>
<form method="post" action="/jwbook/calcControl">
<!--서버에 똑같은 환경에서 돌아가기 때문에 세션과 같은 그런 환경 정보-->
<input type="text" name="n1" size="10"> <select name="op">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select> <input type="text" name="n2" size="10">
<input type="submit" value="확인">
<!-- <h4>이름을 입력하세요</h4>
<hr>
<input type="text" name="n3" size="10">
-->
</form>
</body>
</html>
계산 처리 결과를 보여주는 화면 구현을 위해
calcReult.jsp 파일 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기-컨트롤러</title>
</head>
<body>
<h2>계산 결과-컨트롤러</h2>
<hr>
결과: ${n1} ${op} ${n2} = ${result}
</body>
</html>
컨트롤러 구현: CalcController
이거는 추가할 때 서블릿으로 추가해야한다.
java package: ch08
class name: CalcController
URL mapping: calcControl
서블릿으로 추가하지 않으면 연동이 되지 않는다.
package ch08;
import java.io.IOException;
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("/calcControl")
public class CalcController extends HttpServlet {
private static final long serialVersionUID = 1L;
public CalcController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int n1 = Integer.parseInt(request.getParameter("n1"));
int n2 = Integer.parseInt(request.getParameter("n2"));
String opp = request.getParameter("op");
long result = 0;
switch(request.getParameter("op")) {
case "+": result = n1+n2;break;
case "-": result = n1-n2;break;
case "/": result = n1/n2;break;
case "*": result = n1*n2;break;
}
request.setAttribute("result", result);
request.setAttribute("n1", n1);
request.setAttribute("n2", n2);
request.setAttribute("op", opp);
getServletContext().getRequestDispatcher("/ch08/calcResult.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
결과
결과: ${n1} ${op} ${n2} = ${result} 이부분이랑
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int n1 = Integer.parseInt(request.getParameter("n1"));
int n2 = Integer.parseInt(request.getParameter("n2"));
String opp = request.getParameter("op");
long result = 0;
switch(request.getParameter("op")) {
case "+": result = n1+n2;break;
case "-": result = n1-n2;break;
case "/": result = n1/n2;break;
case "*": result = n1*n2;break;
}
request.setAttribute("result", result);
request.setAttribute("n1", n1);
request.setAttribute("n2", n2);
request.setAttribute("op", opp);
이부분 흐름 확인해볼 것!
'서버 > JSP' 카테고리의 다른 글
html로 컨트롤러 들어가기 (1) | 2023.12.07 |
---|---|
247p 고급 컨트롤러 서블릿 구현 (1) | 2023.12.05 |
h2 설치 및 활용 (1) | 2023.12.05 |
MVC패턴 (1) | 2023.12.05 |
액션 종합 예제: 계산기 구현 jsp, java Bean, Html 세가지로 활용 (0) | 2023.11.30 |