
웹 개발에서 Model, View, Controller로 역할을 나눠서 관리하는 방식
사용자가 브라우저에서 페이지를 요청하면 서버가 JSP를 실행해서 완성된 HTML 을 만들어 브라우저에 보내는 방식
ex)
<html>
<body>
<%
String name = "김지원";
%>
<h1><%= name %>님 안녕하세요</h1>
</body>
</html>
JSP는 HTML에 자바 코드를 넣을 수 있기 때문에 정적인 HTML이 아니라 상황에 따라 내용이 바뀌는 페이지를 만들 수 있다.
선언문 : 변수, 메서드 선언 <%! int count = 0; %>
스크립틀릿 : 자바 코드 직접 작성 <% String name = "김지원"; %>
표현식 : 값을 화면에 출력 <%= name %>
[컨트롤러]
request.setAttribute("username", "김지원");
request.getRequestDispatcher("/WEB-INF/views/home.jsp").forward(request, response);
[JSP]
<html>
<body>
<h1>${username}님 환영합니다</h1>
</body>
</html>
[브라우저 결과]
<h1>김지원님 환영합니다<h1>

Controller : 요청 받음, 흐름 제어Model : 데이터 처리, 비즈니스 로직View(JSP) : 화면 출력만 담당
Lombok, SpringBoot DevTools, SpringWeb, Thymeleaf (뷰)