Today I Learned - 35(결석 후 영상시청)
JSP - 9
- JSTL (JSP 표준 태그 라이브러리)
- 웹 MVC
JSTL - 1. 개요
- JSTL(JSP Standard Tag Library)
- 일종의 사용자 정의 태그의 표준
- JSP 페이지에서 스크립트 요소로 인한 코드의 복잡함을 해결하기 위해 사용
- 가독성 up!
- JSP 내장 객체에 쉽게 접근
- 파라미터, 헤더, 쿠키 등 복잡한 코드 대신 쉽게 직관적으로 사용 가능
- 주의할 점
- JSTL 작성 시, 모든 태그가 시작 태그와 종료 태그의 쌍으로 구성!
JSTL - 2. 제공하는 태그의 종류/사용법
- JSTL 태그의 분류
- 각각 다양한 하위 태그 있음
- 각각 다양한 하위 태그 있음
태그 | 설명 |
---|---|
Core 태그 | 변수 선언, 삭제 등 변수와 관련된 작업 / if, for문과 같은 제어 기능 / URL 처리로 페이지 이동 기능 |
Fomatting 태그 | 문자열이나 컬렉션을 처리하는 함수 태그.. 숫자,날짜,시간 등을 형식화 / 다국어 지원 기능 등 |
sql 태그 | 데이터베이스와의 상호작용(데이터 삽입/수정/삭제/조회 등)에 사용 |
Function 태그 | 문자열을 처리하는 함수를 제공 |
- Core 태그
<c:out>
: 출력<c:set>
: 사용할 변수 설정<c:remove>
: 설정한 변수를 제거<c:catch>
: 예외 처리에 사용<c:if>
: 조건문 처리<c:forEach>
: 반복문 처리<c:redirect>
: 설정한 경로로 이동- … …
- 참고!(EL 표기법)
${number}
=<%=number%>
- sql 태그
<sql:setDataSource>
: DataSource를 설정<sql:query>
:조회 쿼리문 실행<sql:update>
: 삽입, 수정, 삭제 쿼리문 실행<sql:dateParam>
: 쿼리문에 문자열 형식 파라미터 설정<sql:param>
: 쿼리문에 날짜 형식 파라미터 설정<sql:transaction>
: 트랜잭션 구현
- Function 태그
- contains(): 검색 대상 문자열의 포함 여부 확인
- containsIgnoreCase(): 대/소문자에 관계없이 검색 대상 문자열의 포함 여부 확인
- startsWith(): 특정 문자열로 시작하는지 확인
- endsWith(): 특정 문자열로 끝나는지 확인
- escapeXml(): 문자열에 포함된 특수문자를 특정 코드로 변환
- indexOf(): 검색 대상 문자열의 첫 위치 값을 반환
- join(): 배열 형태의 문자열을 설정한 구분자로 연결하여 반환
- … …
웹 MVC - 1. 개요
- Model, View, Controller
- Web App을 비즈니스 로직 / 프레젠테이션 로직 / 데이터 로 분리하는 디자인 패턴!
- Model : 고객, 제품, 주문 정보 등의 비즈니스 로직을 담는 객체
- View : 사용자에게 모델의 정보(데이터)를 보여주는 역할
- Controller : Model과 View 사이 어떤 동작이 있을 때, 조정하는 역할(적절한 뷰 선택)
- Web App을 비즈니스 로직 / 프레젠테이션 로직 / 데이터 로 분리하는 디자인 패턴!
웹 MVC - 2. MVC 패턴 구조
- 모델 1
- Model => DB
- View + Controller => ex. processAddMember.jsp
.jsp 페이지가 대부분의 처리를 수행!!
- ‘모델 1’ 특징
장점 | 단점 |
---|---|
구조 단순, 빠른 개발 가능 | 뷰 코드와 자바 코드(컨트롤) 섞여있어 분업 어려움, 유지보수 역시 어려움 |
- 모델 2
- Model => DB
- View => .jsp 페이지
- Controller => 서블릿 (like ‘관제탑’)이 모두 처리
- ‘모델 2’ 특징
장점 | 단점 |
---|---|
뷰 코드(출력)와 자바 코드(로직 처리) 분리되어 있어 코드 간결, 분업 및 유지보수 용이 | 개발 난이도 비교적 어렵고, 더 많은 시간 소요 |
웹 MVC - 3. MVC 패턴 구현
- web.xml 파일에 서블릿 구성
- 웹 MVC에서는 클라이언트로부터 요청 받을 때, ‘서블릿(컨트롤러)’을 통해 받음!!
- 이를 위해 web.xml에 ‘서블릿 클래스’와 ‘URL 패턴’을 등록!
<servlet>
요소로 서블릿 클래스 등록<servlet-mapping>
요소로 URL 패턴 등록
- 컨트롤러 생성
- 컨트롤러: 요청 URL/파라미터 받아서 처리하는 ‘서블릿 클래스’
- ‘HttpServlet 클래스’를 확장하여 생성
- 모델 생성
- 모델: Web App의 비즈니스 로직을 포함하는 데이터
DB의 데이터 or 서비스 수행하는 간단한 자바 클래스(자바빈즈)
- 모델: Web App의 비즈니스 로직을 포함하는 데이터
- 뷰 생성
- 뷰: 웹 브라우저의 요청을 처리한 결과를 사용자에게 보여주는 JSP 페이지
- 수업 영상 시청!
- WebMarket 예제의 MVC 패턴 동작 원리, 영상으로 복습 꼭
공지
- 5/30(월) JSP 시험 예정
- 관련 내용 숙지
nice!!!