반응형

# 인프런 MVC 프레임워크는 내손에 7일차 : JSP 비즈니스 로직 분리

## JSP 페이지를 구성하는 구성요소

  • 지시자
<%@  ~~~  %>


ex)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
  • 스크립트릿
<%  ~~~  %>


ex)
<% 
	java.util.Date d = new java.util.Date();
%>
  • 출력식
<%=  ~~~  %>


ex)
<%=d.toString() %>
  • JSP를 View 또는 프리젠테이션 로직 이라고 한다. (MVC에서 View에 해당)
  • JSP는 페이지 단위로 만든다. (HTML 강점)
  • 렌더링 : 톰캣 서버가 클라이언트에 응답하기 위해 최종적으로 만들어내는 결과 페이지를 만드는 과정

### JSP 비즈니스 로직 과 프리젠테이션 로직 분리 

  • 아래는 1 ~ 10까지의 합을 보여주는 JSP 예시. (비즈니스 로직, 프리젠테이션 로직 MIX)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 처리하는 부분 : 비즈니스 로직. -->
<%
	int sum = 0;
	for ( int i = 1; i <= 10; i++ ) {
		sum += i;
	}
%>


<!-- 아래는 보여지는 부분 : 프리젠테이션 로직. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<table border="1">
		<tr>
			<td>1 ~ 10까지의 총합</td>
			<td><%=sum %></td>
		</tr>
	</table>
</body>
</html>
  • src에 util 패키지 생성하여 1~10까지의 합을 계산하는 처리 로직 분리. (이를 Model 1 방식이라고 한다. Model 1 방식은 V(view)와 M(mode)으로만 이루어진 것)
package kr.web.util;

public class MyUtil {
	public int hap() {
		int sum = 0;
		
		for ( int i = 1; i <= 10; i++ ) {
			sum += i;
		}
		
		return sum;
	}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="kr.web.util.*" %>
<%
	MyUtil my = new MyUtil();
	
	int sum = my.hap();
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<table border="1">
		<tr>
			<td>1 ~ 10까지의 총합</td>
			<td><%=sum %></td>
		</tr>
	</table>
</body>
</html>
  • 위 처럼 작업 후 실행 시 에러 발생. 에러는 아래 방법으로 해결 (현재 모든걸 수동으로 만들어 작업했기 때문에 문제 발생.)
  • 우선 기존 프로젝트 우클릭 > build path 진입
  • source 탭에서 Browse 클릭하여 우리가 만들어놓은 경로로 설정(WEB/webapp/WEB-INF/classes)

반응형

+ Recent posts