SPRING

[JSP, JSTL] JSP가 무엇인가, JSTL 태그 사용법

merryna 2021. 8. 5. 13:16
반응형

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 스타일 시트에서 매개 변수를 설정하기 위해 변환 태그와 함께 사용
반응형