반응형

# MVC01_5 Controller에서 Model 분리하기

  • Controller에서 비즈니스 로직을 Model로 분리하기
  • 일반적으로 model 패키지에는 VO, DAO, Util 등이 올수 있다.

## MyCalc.java

  • kr.bit.model > New 클릭하여 MyCalc 클래스 생성
package kr.bit.model;

public class MyCalc {
	public int hap(int su1, int su2) {
		int sum = 0;
		
		for ( int i = su1; i <= su2; i++ ) {
			sum += i;
		}
		
		return sum;
	}
}

## CalcController.java

package kr.bit.controller;

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;

import kr.bit.model.MyCalc;

@WebServlet("/calc.do")
public class CalcController extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) 
											throws ServletException, IOException {
		// 1. 클라이언트에서 넘어오는 폼 파라미터 받기(파라미터 수집) -> 파라미터 : su1, su2
		int su1 = Integer.parseInt(request.getParameter("su1"));
		int su2 = Integer.parseInt(request.getParameter("su2"));
		
		// 2. 비즈니스 로직 -> su1 ~ su2 = ? 
		// 비즈니스 로직 Model로 분리.
		/*int sum = 0;
		
		for ( int i = su1; i <= su2; i++ ) {
			sum += i;
		}*/
		
		MyCalc myCalc = new MyCalc();
		
		int sum = myCalc.hap(su1, su2);
		
		// 3. 응답(프리젠테이션 로직 = view -> 추후 JSP가 담당할 예정)
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("<table border='1'>");
		out.println("<tr>");
		out.println("<td>TOTAL</td>");
		out.println("<td>" + sum + "</td>");
		out.println("</tr>"); 
		out.println("</table>");
		out.println("</body>");
		out.println("</html>");
	}
}

 

반응형

+ Recent posts