Servlet
--HTML코드 출력 문제--> JSP
--[스파게티 코드 문제]--> JSP MVC
-> Spring MVC
-> SpringBoot
JSP 파일 내에 코드 블럭을 통해 코드를 추가할 수 있다고 했다. 기본적인 페이지를 구현해보자.
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
<% for(int i=0; i < 10; i++) {%>
Hello JSP~~<br>
<% }%>
</body>
</html>
결과는
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
hello.jsp + (?cnt=5)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String _cnt = request.getParameter("cnt");
int cnt = Integer.parseInt(_cnt);
%>
<html>
<head>
<title>Hello</title>
</head>
<body>
<% for(int i=0; i < cnt; i++) {%>
Hello JSP~~<br>
<% }%>
</body>
</html>
결과는
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
num.jsp + (?num=3)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String _num = request.getParameter("num");
int num = Integer.parseInt(_num);
%>
<html>
<head>
<title>Hello</title>
</head>
<body>
<%if (num % 2 == 0) {%>
짝수입니다.
<%} else {%>
홀수입니다.
<%}%>
</body>
</html>
결과는
홀수입니다.
JSP를 코드 블럭을 활용해 코드를 짤 때 스파게티 코드 문제가 발생한다.
코드가 스파게티 처럼 꼬여 버려 관리가 어렵게 되는 상황
num.jsp를 살펴보자.
num.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String _num = request.getParameter("num");
int num = Integer.parseInt(_num);
%>
<html>
<head>
<title>Hello</title>
</head>
<body>
<%if (num % 2 == 0) {%>
짝수입니다.
<%} else {%>
홀수입니다.
<%}%>
</body>
</html>
현재 jsp파일 위 쪽에는 Query String을 통해 변수를 받기 위한 코드가 있고
중간에는 변수가 홀수인지 짝수인지 확인하는 코드가 있다.
스파게티 코드 문제
가 발생할 수 있게 된다.따라서 이를 보완하기 위해 JSP MVC
방식이 등장하게 됐다.