자카르타 서버 페이지

Jakarta Server Pages
JSP
파일 이름 확장자
.jsp, .jspx, .jspf
인터넷 미디어 유형
응용 프로그램/jsp[citation needed]
개발자이클립스 재단
초기 릴리즈1999년; 23년 전(1999년)
최신 릴리즈
3.1
2022년 4월 31일, 3개월 전(2022-04-31)
포맷의 종류동적 웹 페이지
표준.JSR 245
오픈 포맷?네.
웹 사이트projects.eclipse.org/projects/ee4j.jsp Edit this at Wikidata

자카르타 서버 페이지(JSP, 이전 JavaServer Pages)는 소프트웨어 개발자가 HTML, XML, SOAP 또는 기타 문서 유형을 기반으로 동적으로 생성된 웹 페이지를 작성할 수 있도록 지원하는 기술 모음입니다.1999년 Sun Microsystems에 [1]의해 출시된 JSP는 PHP ASP와 유사하지만 Java 프로그래밍 언어를 사용합니다.

자카르타 서버 페이지를 배포 및 실행하려면 Apache Tomcat 또는 Jetty와 같은 서블릿 컨테이너와 호환되는 웹 서버가 필요합니다.

개요

JSP 모델2 아키텍처

아키텍처상 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 기반 템플릿 대체 기능

레퍼런스

  1. ^ "FoRK Archive: Sun JSP 1.0 *not* available". www.xent.com.
  2. ^ JSP 페이지의 라이프 사이클(Sun 매뉴얼)
  3. ^ Seshadri, Govind (December 29, 1999). "Understanding JavaServer Pages Model 2 architecture". JavaWorld. Retrieved 2020-07-17.
  4. ^ "OutputStream already obtained (JSP forum at Coderanch)". coderanch.com.
  5. ^ a b JSP 1.2 구문 참조
  6. ^ 통합 표현 언어(Sun Developer Network)
  7. ^ 태그 라이브러리 튜토리얼 - 태그 라이브러리란? () Wayback Machine에서 2012년 4월 19일 아카이브 완료
  8. ^ "JavaServer Pages Standard Tag Library - The Java EE 5 Tutorial". docs.oracle.com.
  9. ^ "The Java EE 5 Tutorial, Chapter 6 JavaServer Pages Documents". oracle.com. Retrieved 2022-07-27.
  10. ^ "IBM Docs". www.ibm.com.
  11. ^ "SyBooks Online". infocenter.sybase.com.
  12. ^ a b JSP에 관한 문제(2000년 1월 25일)

추가 정보

외부 링크