본문 바로가기
Dev. Cookbook/Java, JSP

[JSP] JSTL 버전 구분

by breezyday 2022. 5. 24.

최근 JSTL을 사용하기 시작하면서 JSTL version을 1.1을 다운로드하여 설치해서 사용하고 있습니다. 문득 드는 생각이 버전별로 어떤 차이점이 있을지 알아둬야겠다는 생각이 들어 조금 찾아봤습니다.

 

1. JSTL

JSTLJavaServer Pages Standard Tag Library의 약어입니다.

 

JSP는 그냥 사용할 경우 스크립트릿( <% %> ) 영역과 HTML이 혼재되어 소스를 이해하가 비교적 어렵습니다. 그래서 코딩을 보다 쉽게 하기 위해 자신만의 태그를 추가하고 사용하였는데 이것이 '커스텀 태그'입니다. 커스텀 태그는 JSP를 작성할 때 자주 사용되는 자바 코드를 태그 형태로 만든 것이며 이런 커스텀 태그를 모아서 압축한 것커스텀 태그 라이브러리입니다.

 

JSTLJSP에서 사용하는 커스텀 태그 라이브러리를 표준화하여 만든 것입니다.

 

2. JSTL 버전

 

Standard Taglib 라이브러리는 http://tomcat.apache.org/tagliabs/standard 에서 다운로드할 수 있으며 현재 3개의 버전을 배포하고 있습니다.

 

Standard TagLib 주요 버전

  • Standard 1.2.3 / JSTL 1.2 / 요구 스펙 : Servlet 2.5, JSP 2.1
  • Standard 1.1 / JSTL 1.1 / 요구 스펙 : Servlet 2.4, JSP 2.0
  • Standard 1.0 / JSTL 1.0 / 요구 스펙 : Servlet 2.3, JSP 1.2

 

3. Standard TagLib 버전별 차이점

3.1 JSTL 1.2 : Standard 1.2.3

  • J2EE 5 
  • JSP 2.1
  • Servlet 2.5
JSP 페이지 선언부 
- JSTL 1.2, JSTL 1.1.x 공용

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

Apache Stadard Taglib 1.2.1 API

https://tomcat.apache.org/taglibs/standard/apidocs/

 

3.2 JSTL 1.1.x : Standard 1.1

  • J2EE 1.4
  • JSP 2.0
  • Servlet 2.4
JSP 페이지 선언부 
- JSTL 1.2, JSTL 1.1.x 공용

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

JavaServer Pages Standard Tag Library 1.1 Tag Reference

https://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/

 

3.3 JSTL 1.0 : Standard 1.0

  • J2EE 1.3
  • JSP 1.2
  • Servlet 2.3
JSTL 선언부 : JSTL 1.0

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

 

4. Servlet 버전 확인

4.1 web.xml 확인

Tomcat에서 어떤 Servlet 버전을 사용하고 있는지 확인하려면 web.xml을 열어 확인해보면 됩니다.

 

 

 

 

제가 설치하고 사용하고 있는 tomcat은 9.0 버전입니다. 그때 tomcat의 요구사항을 확인하면서 같이 확인한 것이 있네요. tomcat의 모든 버전별 요구사항은 아래와 같습니다. 

 

[WAS] Tomcat 버전 별 요구사항

 

 

4.2 JSP에서 확인

 

아래의 JSP 코드를 수행하면 현재 사용중인 서버의 버전과 Servlet 그리고 JSP 버전을 알 수 있습니다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>개발환경 버전 체크</title>
    <style>
    	span {
    		display: inline-block;
    		font-weight: bold;
    		width: 80px;
    	}
    </style>
</head>
<body>
<h2>개발환경 버전</h2><hr>
<span>서버  </span>: 
<%=application.getServerInfo() %><br>
<span>서블릿  </span>: 
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %><br>
<span>JSP  </span>: 
<%= JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>
</body>
</html>

 

JSP에서 사용하는 함수들은 아래와 같습니다. 

 

 

// 서버 버전 확인
application.getServerInfo();

// 서블릿 버전 확인
application.getMajorVersion();
application.getMinorVersion();

// JSP 버전 확인
JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion();

 

 

 

 

참고

https://hamtol.tistory.com/21

 

https://www.oracle.com/java/technologies/jstl.html

https://jcp.org/en/jsr/detail?id=52

 

 

 

 

 

댓글