JSTL 태그를 사용하여 프로젝트를 진행해보았지만, JSP에 대한 개념은 잡혀 있지 않아 정리
JSP (JavaServer Pages )
HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구
JSP는 JVM 상에서 처리되기 위해 서블릿 컨테이너(톰캣)에 의해 자바 서블릿(Servlet) 으로 변환되며 필요한 작업 수행 후 그 결과로 순수 HTML을 만들어낸다. ( 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 데이터를 클라이언트로 응답)
**서블릿
: 웹페이지를 동적으로 생성하기 위해 서버측 프로그램, 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작
JSP 동작과정
1. 클라이언트 요청 (hello.jsp)
2. JSP container가 hello.jsp를 read
3. container가 Servlet.java 파일 생성
4. helloServlet.java 파일을 helloServlet.class 파일로 컴파일
5. HTML 파일 생성하여 container에게 전달
JSP 동작과정을 다음 포스팅에서 너무 잘 설명해주셔서 스크랩
https://gmlwjd9405.github.io/2018/11/03/jsp.html
https://ffoorreeuunn.tistory.com/64?category=768437
[ JSP ] Web Programming 이란? | JSP 동작 원리
Web Programming ? - 동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발된 프로그래밍 언어 : CGI , ASP , PHP , JSP - 웹 프로그래밍은 기본적으로 클라이언트(Client)/ 서버(Server) 방식 HTML 과 Scr..
ffoorreeuunn.tistory.com
JSTL Tag
core tags | 변수 지원, URL 관리, 흐름 제어 등을 제공, URL은 http://java.sun.com/jsp/jstl/core , 접두사는 c |
function tags | 문자열 조작 및 문자열 길이를 지원, URL은 http://java.sun.com/jsp/jstl/functions , 접두사는 fn |
formatting tags | 메시지 형식화, 번호 및 날짜 형식화 등을 지원, URL은 http://java.sun.com/jsp/jstl/fmt , 접두사는 fmt |
XML tags | 흐름 제어, 변환 등을 제공, URL은 http://java.sun.com/jsp/jstl/xml , 접두사는 x |
SQL tags | SQL 지원을 제공, URL은 http://java.sun.com/jsp/jstl/sql , 접두사는 sql |
Core Tag
프로젝트 할 때는 core tags를 많이 사용했었다.
c:out, c:set, c:url, c:if, c:choose, c:when, c:foreach 정도
어떠한 태그가 있는지 알면 좋을 것 같아서 정리
c:out | <% = ... %> 태그 작동 방식과 유사한 표현식의 결과를 표시 |
c:import | 상대 또는 절대 URL을 검색하여 내용을 'var'의 문자열, 'varReader'의 Reader 또는 페이지에 표시 |
c:set | 평가중인 표현식의 결과를 'scope'변수에 설정 |
c:remove | 특정 범위에서 지정된 범위 변수를 제거하는 데 사용 |
c:catch | 본문에서 발생하는 Throwable 예외를 포착하는 데 사용 |
c:if | 조건을 테스트하는 데 사용되는 조건부 태그이며 표현식이 참인 경우에만 본문 내용을 표시 |
c:choose, c:when, c:otherwise | 평가 된 조건이 true 인 경우 본문 내용을 포함하는 간단한 조건부 태그 |
c:forEach | 기본 반복 태그, 고정 된 횟수 또는 초과 수집 동안 중첩 된 본문 내용을 반복 |
c:forTokens | 제공된 델리 미터로 분리 된 토큰을 반복 |
c:param | 포함하는 'import'태그의 URL에 매개 변수를 추가 |
c:redirect | 브라우저를 새 URL로 리디렉션하고 컨텍스트 기준 URL을 지원 |
c | url |
c:choose, c:when, c:otherwise
c:when, c:otherwise는 c:choose 하위 태그
<c:choose>
<c:when test="${balance <= 10000}">
잔고가 10,000원 이하 입니다.
</c:when>
<c:when test="${balance > 100000}">
잔고가 100,000원에 달성하였습니다.
</c:when>
<c:otherwise>
잔고를 확인할 수 없습니다.
</c:otherwise>
</c:choose>
Function Tag
fn:contains() | 프로그램에서 지정된 하위 문자열을 포함하는 입력 문자열인지 테스트하는 데 사용 |
fn:containsIgnoreCase() | 입력 문자열에 대소 문자를 구분하지 않고 지정된 하위 문자열이 포함되어 있는지 테스트하는 데 사용 |
fn:endsWith() | 입력 문자열이 지정된 접미어로 끝나는 지 테스트하는 데 사용 |
fn:escapeXml() | XML 마크업으로 해석되는 문자를 escape |
fn:indexOf() | 지정된 하위 문자열이 처음 나타나는 문자열 내에서 인덱스를 반환 |
fn:trim() | 문자열의 양쪽 끝에서 공백을 제거 |
fn:startsWith() | 주어진 문자열이 특정 문자열 값으로 시작되는지 여부를 확인하는 데 사용. |
fn:split() | 문자열을 하위 문자열 배열로 분할 |
fn:toLowerCase() | 문자열의 모든 문자를 소문자로 변환 |
fn:toUpperCase() | 문자열의 모든 문자를 대문자로 변환 |
fn:substring() | 주어진 시작 및 끝 위치에 따라 문자열의 하위 집합을 반환 |
fn:substringAfter() | 특정 하위 문자열 다음에 문자열의 하위 집합을 반환 |
fn:substringBefore() | 특정 하위 문자열 앞의 문자열 하위 집합을 반환 |
fn:length() | 문자열 내부의 문자 수 또는 컬렉션의 항목 수를 반환 |
fn:replace() | 모든 문자열을 다른 문자열 시퀀스로 바꿈 |
XML Tag
x:out | <%= ...> 태그와 유사하지만 XPath 표현식 |
x:parse | 태그 본문 또는 속성에 지정된 XML 데이터를 구문 분석하는 데 사용 |
x:set | 변수를 XPath 표현식의 값으로 설정하는 데 사용 |
x:choose | 상호 배타적 인 조건부 작업에 대한 context를 설정하는 조건부 태그 |
x:when | 가 된 조건이 'true'인 경우 본문이 포함됨 |
x:otherwise | 태그 및 이전의 모든 조건이 '거짓'인 경우에만 실행 |
x:if | 테스트 XPath 표현식을 평가하는 데 사용되며, true 인 경우 본문 내용을 처리 |
x:transform | XSL (Extensible Stylesheet Language) 변환을 제공하기 위해 XML 문서에서 사용 |
x:param | XSLT 스타일 시트에서 매개 변수를 설정하기 위해 변환 태그와 함께 사용 |
'SPRING' 카테고리의 다른 글
[TOMCAT] 톰캣 캐시 부족 현상 해결 (갑자기 화면이 옛날 소스로 바뀔 때 등) (0) | 2022.02.17 |
---|---|
[전자정부 표준프레임워크] 3.9.0 all-in-one with Oracle 11g (0) | 2021.08.10 |
스프링 부트로 만든 Restful API 서버와 안드로이드 Retrofit2 통신 (0) | 2021.07.11 |
[스프링 부트] int 값 받아오는 법 (0) | 2021.06.19 |
[스프링] c:choose로 상태에 따른 값 출력하는 법 (0) | 2021.06.11 |