티스토리 뷰

스프링

JSP와 MVC패턴??

김쓰로그 2022. 8. 21. 15:07

앞서 Servlet을 통해 동적 웹 페이지를 만들 수 있다고 하였고 이를 자바코드 내에 HTML을 넣어 작성하였다. 하지만 이러한 방식은 굉장히 복잡하고 비효율적이다. 이러한 이유로 HTML코드안에 동적으로 변경해야할 부분에 자바 코드를 넣음으로서 동적 웹 페이지를 만드는 기술인 템플릿 엔진이 나왔는데 그 기술 중 하나가 JSP인 것이다.

 

JSP란?

HTML 코드에 자바 코드를 넣어 동적 웹 페이지를 생성하는 템플릿 엔진이다.

 

JSP를 사용하기 위한 라이브러리 설정

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'

 

HTML 파일 내부에 어떻게 자바코드를 넣을까?

JSP에는 스크립트 요소가 존재하는데 아래와 같다.

1. <%@...%> : 페이지에 대한 정보 설정

2. <%...%> : JSP 파일 내부에 자바 코드를 입력할 수 있다.

3. <%=...%> : 자바 코드를 출력할 수 있다.

4. <%!...%> : JSP 페이지 내부에 자바 메서드를 선언한다.

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  MemberRepository memberRepository = MemberRepository.getInstance();
  List<Member> members = memberRepository.findAll();
%>
<html>

예시코드이다.

 

위에서 <%=...%>를 통해 자바 코드를 출력할 수 있다고 했는데 이는 좀 불편할 수도 있다. 이 때 사용하는 것이 

EL(Expression Language)이다. 사용법은 아래와 같다.

 

${...}

 

한계

서블릿과 JSP를 보면 클라이언트의 요청을 처리하는 로직과 클라이언트에게 보여질 View 코드가 하나의 파일안에 작성이 된다. 이는 코드가 복잡해지는 결과를 낳았고 코드가 길어지면 길어질 수록 유지보수도 어렵고 관리가 어려워진다.


그래서 나온것이 MVC 패턴이다.

MVC패턴??

MVC 패턴이란 JSP, Servlet처럼 하나로 묶여있는 코드를 Model, View, Controller라는 영역으로 서로 역할을 나눈 것을 의미한다.

  • 컨트롤러(Controller) 
    • HTTP 요청을 받으면 요청에 대한 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과를 모델에 담는다.
  • 모델(Model)
    • 뷰에 출력할 데이터를 담아둔다. 일종의 저장소
  • 뷰(View)
    • 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함