[Spring] 스프링 실습 들어가기 앞서
[MVC]
1. MVC란?
코드를 기능에 따라 Model, View, Controller 3가지 요소로 분리하여 UI코드와 비즈니스 코드를 분리하는 구조
종속성을 줄이고 재사용성을 높이며 보다 변경이 용이
2. 3가지 요소
Model : 데이터와 비즈니스 로직을 담는 객체
View : 사용자에게 시각적으로 보여주는 부분(UI)
Controller : 사용자의 요청을 받아 Model의 변경된 상태 반영, 응답을 위한 View를 선택
3. MVC 기본 구조(Model2)
* Model1은 Controller가 없는 구조로 소규모에서 사용
But, View가 Controller+View 역할을 다해야하기 때문에 유지 보수가 용이하지 않음
4. MVC 변형
클라이언트의 모든 요청은 Front Controller로 -> POJO를 추가하는 등 변형
MVC가 변형되다가 나온 것이 Spring!
'Controller를 어떻게 개선해야 업무의 효율성이 증가하는가?'가 핵심!
5. Spring MVC
Dispatcher Servlet(Front Controller)
Controller(POJO)
[JSTL/EL]
1. JSTL와 EL이란?
JSTL(Jsp Standard Tag Library) : JSP 표준 라이브러리
JSP에서 자주 사용하는 기능(반복문, 조건문 등)을 미리 구현해놓은 커스텀 태그
라이브러리 모음
예시) <% for(int i = 1; i <= 5; i++){ -> <c:forEach begin="1" end="5" step="1">
EL(Expression Language) : 출력 문법을 대체하는 표현 언어
예시) <%=i %> -> ${i }
| |
변수 이름
2. 왜 사용하는가?
- 페이지의 가독성을 높이기 위해
- 유지보수에 편리
- 일부 디자인 툴에서 <% %>가 깨질 수 있어서
3. JSTL 환경설정
- https://mvnrepository.com/artifact/javax.servlet/jstl에서 원하는 버전 선택 후 jar파일을 다운로드
- 프로젝트의 [src]-[webapp]-[WEB-INF]-[lib]에 넣어준다(드래그 혹은 Copy&Paste)
- jsp 파일의 지시자 태그 taglib를 이용하여 prefix설정을 해준다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
prefix는 접두사라는 의미로 여기서는 다른 태그와 충돌이 나지 않게 하기 위해 필요!
4. EL : 표현식,출력식
- JSTL과 함께 사용
- ${식 }
|-> 1. var로 된 변수 이름
|-> 2. 연산자(산술, 관계, 논리)
|-> 3. 속성이름
예시) <Controller>
ArrayList<MemberVO> list = new ArrayList<MemberVO>();
request.setAttribute("list",list); //->객체바인딩
RequestDispatcher rd = request.getRequestDispatcher("member.jsp");
rd.forword(request, response);
<JSP>
ArrayList<MemberVO> list= (ArrayList<MemberVO>)request.getAttribute("list");
for --이하 생략--
request 객체에 list라는 이름의 값을 바인딩->jsp파일에서 getAttribute로 받아온다.
즉,
ArrayList<MemberVO> list= (ArrayList<MemberVO>)request.getAttribute("list"); |-> ${list }로 가능!