자카르타 서버 페이지
Jakarta Server Pages파일 이름 확장자 | .jsp, .jspx, .jspf |
---|---|
인터넷 미디어 유형 | 응용 프로그램/jsp[citation needed] |
개발자 | 이클립스 재단 |
초기 릴리즈 | 전( |
최신 릴리즈 | 3.1 2022년 4월 , 전( |
포맷의 종류 | 동적 웹 페이지 |
표준. | JSR 245 |
오픈 포맷? | 네. |
웹 사이트 | projects |
자카르타 서버 페이지(JSP, 이전 JavaServer Pages)는 소프트웨어 개발자가 HTML, XML, SOAP 또는 기타 문서 유형을 기반으로 동적으로 생성된 웹 페이지를 작성할 수 있도록 지원하는 기술 모음입니다.1999년 Sun Microsystems에 [1]의해 출시된 JSP는 PHP 및 ASP와 유사하지만 Java 프로그래밍 언어를 사용합니다.
자카르타 서버 페이지를 배포 및 실행하려면 Apache Tomcat 또는 Jetty와 같은 서블릿 컨테이너와 호환되는 웹 서버가 필요합니다.
개요
아키텍처상 JSP는 Java 서블릿의 높은 수준의 추상화로 간주될 수 있습니다.JSP는 실행 시 서블릿으로 변환되므로 JSP는 서블릿입니다.각 JSP 서블릿은 원래 JSP가 [2]변경될 때까지 캐시되어 재사용됩니다.
자카르타 서버 페이지는 독립적으로 또는 서버측 모델 뷰 컨트롤러 설계의 뷰 컴포넌트로 사용할 수 있습니다.일반적으로 모델로서 JavaBeans, 컨트롤러로서 Java 서블릿(또는 Apache Struts 등의 프레임워크)을 사용합니다.이것은 모델 2 [3]아키텍처의 일종입니다.
JSP는 Java 코드와 HTML과 같은 특정 사전 정의된 액션을 정적 웹 마크업 콘텐츠와 인터리브할 수 있도록 합니다.그 결과 생성된 페이지는 문서를 전달하기 위해 서버에서 컴파일 및 실행됩니다.컴파일된 페이지와 종속 Java 라이브러리에는 기계 코드 대신 Java 바이트 코드가 포함되어 있습니다.다른 .jar 또는 Java 프로그램과 마찬가지로 코드는 서버의 호스트 운영 체제와 상호 작용하는 Java Virtual Machine(JVM; Java 가상 머신) 내에서 실행되어야 하며 추상적인 플랫폼 중립 환경을 제공할 수 있습니다.
JSP는 보통 HTML 및 XML 문서를 전송하는데 사용되지만 OutputStream을 사용하면 다른 유형의 데이터도 [4]전송할 수 있습니다.
웹 컨테이너는 요청, 응답, 세션, 응용 프로그램, 구성, 페이지, pageContext, out 및 예외 등의 JSP 암묵적 개체를 만듭니다.JSP Engine은 변환 단계 중에 이러한 개체를 만듭니다.
구문

JSP 페이지에서는 스크립팅 기능에 여러 딜리미터를 사용합니다.가장 기본적인 것은 <% ... %>
JSP 스크립틀릿을 에워싼다.스크립트렛은 사용자가 페이지를 요청할 때 실행되는 Java 코드 조각입니다.기타 일반적인 구분자는 다음과 같습니다. <%= ... %>
식에서는 스크립트와 딜리미터가 식과 지시어를 평가한 결과로 대체됩니다.<%@ ... %>
를 클릭합니다.[5]
Java 코드는 단일 스크립트릿 블록 내에 완전하거나 자체 포함할 필요가 없습니다.페이지 전체가 구문적으로 정확하다면 마크업 내용을 가로지를 수 있습니다.예를 들어, 페이지가 성공적으로 컴파일되려면 한 스크립트에서 열린 Java if/for/while 블록을 나중에 스크립트에서 올바르게 닫아야 합니다.이로 인해 코드가 혼재되어 프로그래밍이 제대로 수행되지 않을 수 있습니다.
Java 코드의 분할 블록(여러 스크립틀릿에 걸쳐 있음)에 포함되는 컨텐츠는 이 코드의 대상이 됩니다.if 조건이 true로 평가될 때만 if 블록 내의 내용이 출력에 표시됩니다.마찬가지로 루프 본체가 실행되는 횟수에 따라 루프 구성 내의 콘텐츠가 출력에 여러 번 표시될 수 있습니다.
다음으로 JSP 페이지의 루프에 대해 유효합니다.
<p>3까지 카운트: </p> <% for (int i=1; i<4; i++) {%> <p> 이 숫자는 <%= i %></p> <% } %> <p> OK.</p>
사용자의 웹 브라우저에 표시되는 출력은 다음과 같습니다.
셋까지 세는 중:이 번호는 1입니다.이 번호는 2입니다.이 번호는 3번입니다. 네.
표현 언어
JSP 사양 버전 2.0에서는 Java 객체의 데이터 및 함수에 액세스하기 위해 사용되는 Expression Language(EL; 표현 언어) 지원이 추가되었습니다.JSP 2.1에서는 JavaServer [6]Faces에서도 사용되는 Unified Expression Language로 접혀졌습니다.
EL 구문의 예를 다음에 나타냅니다.
개체 "javabean"의 "variable" 값은 ${javabean.variable}입니다.
추가 태그
JSP 구문은 내장된 기능을 호출하기 위해 [5]JSP 액션이라고 하는 태그를 추가합니다.또, 이 테크놀로지에 의해서, 표준 JSP [7]구문의 확장으로서 기능하는 커스텀 JSP 태그 라이브러리를 작성할 수 있습니다.이러한 라이브러리 중 하나가 JSTL이며 반복 및 조건문(Java의 [8]"for" 및 "if" 문과 동일)과 같은 일반적인 작업을 지원합니다.
XML 준거 JSP
JSP 페이지는 완전히 유효한 XML [9]구문으로도 쓸 수 있습니다.이러한 JSP 파일에서는 일반적으로 대체 파일이 사용됩니다..jspx
파일 확장자: 일반적으로 응용 프로그램서버가 XML 구문을 검증합니다.
통상적인 JSP 구문 때문에<% ... %>
XML에서는 유효하지 않습니다.개발자는 JSP에서 제공하는 대체 태그를 사용해야 합니다.예를 들어, common은<%@ page .. %>
지시문은 대신 a로 쓰여질 수 있다.<jsp:directive.page .. />
태그 및 태그 라이브러리는 일반적인 이름공간 대신 XML 네임스페이스를 사용하여 Import됩니다.<%@ taglib .. %>
태그를 붙입니다.
컴파일러
JavaServer Pages 컴파일러는 JSP를 해석하여 실행 가능한 Java Servlet으로 변환하는 프로그램입니다.이러한 유형의 프로그램은 보통 응용 프로그램서버에 내장되어 JSP에 처음 액세스 할 때 자동으로 실행되지만, 보다 나은 성능을 위해 페이지를 미리 컴파일하거나 빌드 프로세스의 일부로 컴파일하여 [10]오류를 테스트할 수도 있습니다.
일부 JSP 컨테이너에서는 페이지의 변경 여부를 확인하기 위해 컨테이너가 JSP 파일의 타임스탬프를 확인하는 빈도를 설정할 수 있습니다.통상, 이 타임스탬프는, 소프트웨어 개발중에 짧은 간격(약 몇초)과 전개되고 있는 Web 애플리케이션의 [11]간격(약 몇분, 또는 전혀)으로 설정됩니다.
비판
2000년에 "Java Servlet Programming"의 저자인 제이슨 헌터는 JavaServer [12]Pages의 많은 "문제"를 설명했습니다.다만, JSP가 「Java 플랫폼에 최적인 솔루션」이라고는 할 수 없지만, 「Java 솔루션과 가장 유사한 것은 Java 솔루션」이라고 하는 것은, Microsoft 의 액티브 서버 페이지를 의미합니다.나중에 그는 JSP가 2000년 이후 향상되었다는 메모를 자신의 사이트에 추가했지만 경쟁사인 Apache Velocity와 Tea(템플릿 언어)[12]도 인용했다.오늘날에는 여러 가지 대안이 있으며, 대형 웹 앱의 많은 JSP 지향 페이지는 기술적 부채로 간주됩니다.
「 」를 참조해 주세요.
서블릿 컨테이너
Java 기반 템플릿 대체 기능
레퍼런스
- ^ "FoRK Archive: Sun JSP 1.0 *not* available". www.xent.com.
- ^ JSP 페이지의 라이프 사이클(Sun 매뉴얼)
- ^ Seshadri, Govind (December 29, 1999). "Understanding JavaServer Pages Model 2 architecture". JavaWorld. Retrieved 2020-07-17.
- ^ "OutputStream already obtained (JSP forum at Coderanch)". coderanch.com.
- ^ a b JSP 1.2 구문 참조
- ^ 통합 표현 언어(Sun Developer Network)
- ^ 태그 라이브러리 튜토리얼 - 태그 라이브러리란? (일) Wayback Machine에서 2012년 4월 19일 아카이브 완료
- ^ "JavaServer Pages Standard Tag Library - The Java EE 5 Tutorial". docs.oracle.com.
- ^ "The Java EE 5 Tutorial, Chapter 6 JavaServer Pages Documents". oracle.com. Retrieved 2022-07-27.
- ^ "IBM Docs". www.ibm.com.
- ^ "SyBooks Online". infocenter.sybase.com.
- ^ a b JSP에 관한 문제(2000년 1월 25일)
추가 정보
- Bergsten, Hans (2003). JavaServer Pages (3rd ed.). O'Reilly Media. ISBN 978-0-596-00563-4.
- Brown, Simon; Dalton, Sam; Jepp, Daniel; Johnson, Dave; Li, Sing; Raible, Matt. Pro JSP 2. Apress. ISBN 1-59059-513-0.
- Hanna, Phil (2003). JSP 2.0 - The Complete Reference. McGraw-Hill Osborne Media. ISBN 978-0-07-222437-5.
- Sierra, Kathy; Bates, Bert; Basham, Bryan. Head First Servlets & JSP. O'Reilly Media. ISBN 978-0-596-00540-5.
외부 링크
