728x90
EL (Expression Language)
EL (Expression Language)의 정의
- 기존 JSP의 표현식을 더 간단하게 작성하기 위한 문법
JSP 문법
- 선언부 <%! %>
- 스크립트릿 <% %>
- 표현식 <%= %>
- 주석 <%-- --%>
EL 문법
- <%=name%> --> ${name}
- JSP의 내장객체는 out, page, session, request, response 이 있다.
- EL의 내장객체는 pageScope, sessionScope, requestScope, responseScope 이 있다.
EL의 연산자
- .: 빈 접근 연산자
- []: 배열 / 컬렉션 접근 연산자
- (): 우선순위
- x ? a : b : 삼항 연산자
- empty: 값이 null일 경우에 true
- +, -, *, /, %: 산술 연산자
- &&, ||, !: 논리 연산자
- ==, !=, >, <, >=, <=: 비교 연산자
JSTL
- 정식 명칭은 자바서버 페이지 표준 태그 라이브러리 (JavaServer Pages Standard Tag Library) 이다.
- JSP 페이지에서 일반적인 핵심 기능을 캡슐화하여 제공되는 JSP 태그의 컬렉션이다.
- JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다.
- 표준화된 태그 셋을 사용하여 자바 코드가 들락거리는 것보다 더 코드의 유지보수와 응용 소프트웨어 코드와 사용자 인터페이스 간의 관심사의 분리로 이어지게 한다.
- JSTL은 일반적인 반복 및 조건, 포매팅 작업, SQL 태그 조작을 위한 태그에 대한 지원을 한다.
표준 태그 라이브러리
Core
- 가장 자주 사용되는 jstl 태그
- 일반적인 프로그래밍에서 사용되는 기능 제공
- 프로그래밍에서 기본적으로 필요한 변수 선언, 제어문, 일반적인 로직 등의 기능 제공
- Core 태그 사용하기 위해서 taglib 지시자 선언해야 함
- Core태그 종류
- <c:out>
- <%= ... %> 표현식과 동일하게 JSP 페이지에 출력되는 태그
- <c:set>
- page,request,session,application 4개 영역의 jsp저장소에 변수를 선언하는 태그
- <c:remove>
- page,request,session,application 4개 영역의 jsp저장소에 변수를 제거하는 태그
- <c:if>
- if문과 같은 기능을 하는 조건 선언 태그
- <c:choose>, <c:when>, <c:otherwise>
- 다중 조건을 사용하기 위한 태그
- <c:choose> 태그 안에 여러 조건을 위해 <c:when>태그가 여러번 사용 가능
- <c:when>조건에 포함되지 않은 조건들은 <c:otherwise>태그를 사용하여 선언
- <c:foreach>
- 배열이나 Collection 객체의 요소를 사용하기 위해 제공되는 태그
- <c:forTokens>
- StringTokenizer 클래스의 기능처럼 문자열에 구분자를 제거하고 요소를 사용하기 위해 제공되는 태그
- <c:import>
- include지시자와 같이 다른 페이지의 내용을 포함하기 위한 태그
- page 지시자의 import와 다르다!
- <c:url>
- 지정한 url링크의 기능을 제공하는 태그
- <c:param>
- <c:import>와 <c:url>에서 매개변수를 선언하는 태그
- <c:redirect>
- query를 포함한 지정한 url로 웹페이지가 전환되는 태그
- <c:catch>
- try..catch와 같이 예외처리를 하기 위한 태그
- <c:out>
Formatting
- 국제화된 웹 사이트에 대한 날짜, 시간 및 숫자 텍스트를 포맷하고 표시하는데 사용되는 기능 제공
- 날짜,시간,숫자,텍스트 포맷,국제화에 따른 언어 설정 기능 제공
- Formatting 태그 사용하기 위해서 taglib 지시자 선언해야 함
- Formatting 태그 종류
- fmt:requestEncoding
- 요청 문자 인코딩 설정 태그
- fmt:setLocale
- 사용하고자 하는 국가,지역 및 언어 설정 태그
- fmt:formatNumber
- 숫자를 원하는 문자열 형식으로 변환시키는 태그
- fmt:parseNumber
- 문자열을 원하는 숫자 형식으로 변환시키는 태그
- fmt:formatDate
- 날짜 및 시간을 원하는 형식으로 출력시키는 태그
- fmt:parseDate
- 문자열을 원하는 날짜 및 시간 형식으로 출력시키는 태그
- fmt:timeZone, fmt:SetTimeZone
- 원하는 시간대 설정 변수의 타임존 설정을 위한 태그
- TimeZone태그는 태그를 열고 닫는 영역에서만 사용
- fmt:bundle
- 태그 안에서 사용할 bundle값 지정
- fmt:setBundle
- 사용할 bundle값 지정
- fmt:message
- 지정된 message값 반환
- fmt:requestEncoding
SQL
테이블 생성
CREATE TABLE MEMBER (
ID LONG AUTO_INCREMENT NOT NULL, -- 아이디 (기본키)
NAME VARCHAR(255), -- 이름
AGE INTEGER NOT NULL, -- 나이
PRIMARY KEY (ID)
);
데이터 입력
INSERT INTO MEMBER(NAME, AGE) VALUES('sally', 30);
INSERT INTO MEMBER(NAME, AGE) VALUES('john', 20);
INSERT INTO MEMBER(NAME, AGE) VALUES('philip', 40);
- 관계형 DB (RDBMS)와 상호 작용하는 태그 제공
- 사용법
- SQL 태그 종류
- sql:setDataSource
- DB 서버 연결 리소스 지정
- sql:query
- 태그 안에 지정된 SQL query 실행
- sql:update
- 태그 안에 지정된 SQL update 실행
- sql:param
- 지정된 값으로 SQL문에서 매개변수 설정
- sql:dateParam
- 지정된 java.util.Date의 값으로 SQL문에서 매개변수 설정
- sql:transaction
- 트랜잭션 모든 명령문 실행
- sql:setDataSource
XML
- XML 문서를 새성하고 조작하는 방법 제공
Function
- 일반적인 문자열을 가공하고 조작하기 위한 표준함수 제공
- 사용법
- Function 태그 종류
- fn:length(obj)
- obj가 문자열이면 길이 리턴, List나 Collection이면 현재 항목 개수 반환
- fn:substring(str, i, j)
- str 문자열에서 i에서 j-1 까지 문자열 리턴
- fn:substringAfter(str1, str2)
- str1 문자열에서 str2 문자열 이후 문자열 리턴
- fn:substringBefore(str1, str2)
- str1 문자열에서 str2 문자열 이전 문자열 리턴
- fn:toUpperCase(str)
- str 문자열을 대문자로 리턴
- fn:toLowerCase(str)
- str 문자열을 소문자로 리턴
- fn:replace(str, src, dest)
- str 문자열에 있는 src 문자열을 dest로 변경한 문자열 리턴
- fn:indexOf(str1, str2)
- str1 문자열에 str2로 시작된 문자열 리턴
- fn:startsWith(str1, str2)
- str1 문자열이 str2로 시작되면 참 (true), 아니면 거짓 (false)
- fn:endsWith(str1, str2)
- str1 문자열이 str2로 끝나면 참 (true), 아니면 거짓 (false)
- fn:contains(str1, str2)
- str1에 str2 문자열 포함되어있으면 참 (true), 아니면 거짓 (false)
- fn:containsIgnoreCase(str1, str2)
- str1에 str2 문자열 포함되어있으면 참 (true), 아니면 거짓 (false)
- 대소문자 무시
- fn:trim(str)
- str에서 양쪽 여백 제거
- fn:join(arr, str2)
- arr 배열의 각 요소 중간에 str2 문자열이 들어간 문자열 리턴
- fn:escpaeXml(str)
- xml 마크업으로서 해석될 수 있는 문자를 이스케이프로 리턴
- fn:length(obj)
'JSP&Servlet' 카테고리의 다른 글
JSP&Servlet - Cookie&Session (0) | 2022.11.18 |
---|---|
JSP&Servlet - Java Beans (0) | 2022.11.18 |
JSP&Servlet - Servlet(서블릿) (0) | 2022.11.18 |
JSP&Servlet - Application (0) | 2022.11.18 |
JSP&Servlet - Session (0) | 2022.11.18 |
댓글