최근 JSTL을 사용하기 시작하면서 JSTL version을 1.1을 다운로드하여 설치해서 사용하고 있습니다. 문득 드는 생각이 버전별로 어떤 차이점이 있을지 알아둬야겠다는 생각이 들어 조금 찾아봤습니다.
1. JSTL
JSTL은 JavaServer Pages Standard Tag Library의 약어입니다.
JSP는 그냥 사용할 경우 스크립트릿( <% %> ) 영역과 HTML이 혼재되어 소스를 이해하가 비교적 어렵습니다. 그래서 코딩을 보다 쉽게 하기 위해 자신만의 태그를 추가하고 사용하였는데 이것이 '커스텀 태그'입니다. 커스텀 태그는 JSP를 작성할 때 자주 사용되는 자바 코드를 태그 형태로 만든 것이며 이런 커스텀 태그를 모아서 압축한 것이 커스텀 태그 라이브러리입니다.
JSTL은 JSP에서 사용하는 커스텀 태그 라이브러리를 표준화하여 만든 것입니다.
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의 모든 버전별 요구사항은 아래와 같습니다.
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://www.oracle.com/java/technologies/jstl.html
https://jcp.org/en/jsr/detail?id=52
'Dev. Cookbook > Java, JSP' 카테고리의 다른 글
[java] jsp에서 forward vs redirect, 포워드와 리다이렉트 비교 (2) | 2023.11.28 |
---|---|
[Java] Map Collection 전체 조회 하는 방법 3가지 (0) | 2022.06.11 |
[java] Oracle 버전 별 JDBC Driver 다운로드 및 호환성 확인 (0) | 2022.05.25 |
[Java] 상대경로, 절대 경로, 정규 경로(표준 경로), getPath(), getCanonicalPath(), getAbsolutePath() 차이점 (1) | 2022.04.27 |
[Java] printf() 한글 문자열 포맷 오류 해결방법 (3) | 2022.04.25 |
댓글