내용 |
Spring Web MVC를 이해시키기 위해서 하는 예제 입니다.
1. Dynamic Web Project를 생성하세요. 프로젝트 이름은 CalcWebApp
2. CalcService 클래스를 작성합니다.
package kr.co.javaspecialist.calc.service;
public class CalcService {
public int add(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
public int mul(int a, int b) {
return a * b;
}
public int div(int a, int b) {
return a / b;
}
}
3. CalcController 클래스를 작성합니다.
package kr.co.javaspecialist.calc.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.co.javaspecialist.calc.service.CalcService;
@WebServlet("/Calc.do")
public class CalcController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cmd = request.getParameter("cmd");
if(cmd != null) {
int a = Integer.parseInt(request.getParameter("a"));
int b = Integer.parseInt(request.getParameter("b"));
CalcService service = new CalcService();
int result = 0;
switch(cmd) {
case "add" :
result = service.add(a, b);
break;
case "sub" :
result = service.sub(a, b);
break;
//mul, div 도 해 주세요.
default :
break;
}
request.setAttribute("result", result);
RequestDispatcher disp =
request.getRequestDispatcher("result.jsp");
disp.forward(request, response);
}//end if
}//end doGet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
4. 결과를 보여줄 result.jsp 페이지를 작성합니다.
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
결과는 : <%= request.getAttribute("result") %><br>
결과는 : ${result}<br>
결과는 : ${requestScope.result}<br>
결과는 : ${requestScope["result"]}
</body>
</html> |