아파치 톰캣 서블릿/JSP 컨테이너

아파치 톰캣 7

Version 7.0.28-dev, Oct 2 2013
Apache Logo

Links

User Guide

참고

아파치 톰캣 개발

SSI 이용 방법

Table of Contents
Introduction

SSI 는 HTML 페이지에서 위치해 페이지가 제공되는 동안 서버가 평가되는 지침입니다. 이것은 당신이 CGI 프로그램이나 혹은 다른 동적 기술을 통해 전체적인 페이지를 제공할 필요 없이 동적으로 발생된 내용들을 존재하는 HTML 페이지에 첨가할 수 있도록 합니다.

당신이 톰캣 SSI지원에서 추가를 한다면, 당신은 톰캣을 SSI 지원을 이용할 수 있고, HTTP 서버로서도 사용할 수 있습니다. 전형적으로 이것은 개발하는 동안, 당신이 아파치와 같은 웹 서버가 작동하지 않기를 원할 때 이루어집니다.

톰캣 SSI 지원은 아파치와 같은 동일한 SSI 지침을 구현합니다. 다음의 사이트를 보십시오. SSI에대한 아파치 소개 SSI 지침을 이용하는 것에 대한 소개

SSI 지원은 서블릿으로 및 필터로 사용할 수 있습니다. 당신은 SSI 지원을 위해 둘 중 하나를 사용할 수는 있지만 둘 다 사용할 수는 없습니다.

SSI지원에 기초한 서블릿은 클래스 org.apache.catalina.ssi.SSIServlet을 이용함으로써 구현이 가능합니다. 관습적으로, 이 서블릿은 “*.shtiml”이라는 URL 형태로 연결됩니다.

SSI 지원에 기초한 필터는 클래스 org.apache.catalina.ssi.SSIFilter를 이용함으로서 구현이 가능합니다. 관습적으로, 이 필터는 "*.shtml" 이라는 URL 형태로 연결됩니다. 하지만 그것은 "*"로 연결될 수도 있습니다. 그것은 선택적으로 MIME 유형에 따라 SSI처리를 사용 가능하게 할 수도, 무능하게 할 수도 있게 합니다. 콘텐츠 형식 초기화 매개변수는 당신이 SSI 처리를 자바 스크립트라는 JSP 페이지나, 당신이 원하는 다른 콘텐츠에 적용할 수 있도록 합니다.

기본적으로 SSI 지원은 톰캣에서 비활성화됩니다.

Installation

CAUTION - SSI 지시어는 톰캣 JVM외부에서 프로그램을 실행하는 데 사용할 수 있습니다. 당신이 만약 자바 보안관리자를 사용한다면 다음의 보안 정책 구성을 생략합니다. catalina.policy.

SSI 서블릿을 사용하기 위해, SSI 시블릿 그리고 시블릿과 연결된 구성 $CATALINA_BASE/conf/web.xml으로부터 XML 주석들을 삭제하십시오.

SSI 필터를 사용하기 위해, SSI 필터 그리고 필터와 연결된 구성 $CATALINA_BASE/conf/web.xml으로부터 XML 주석들을 삭제하십시오..

특별한 권한이 있음으로 표시된 컨텍스트만 SSI 기능을 사용할 수 있습니다. (컨텍스트 요소의 특별한 거권한이 있는지 보세요.)

Servlet Configuration

SSI 시블릿의 동작을 구성할 수 있는데 사용될 수 있는 몇몇의 시블릿 초기화 매개변수가 있습니다.

  • buffered-이 시블릿의 결과값이 버퍼에 저장되어야 하는 것인가? (0 = 거짓, 1 = True) 기본값 0 (FALSE)
  • debug - 이 시블릿에 의해 기록된 메세지의 디버깅 상세 수치. 기본값 0.
  • expires - 페이지의 SSI 지시어가 만료되기 전 초 수. 기본 동작은 모든 SSI 지시어들이 모든 요구에 대해 평가되는 것이다.
  • isVirtualWebappRelative - “virtual”SSI 지시경로는 서버루트가 아닌 컨텍스트 루트와 연관된 것으로 해석될 수 있을 것인가? (0=false, 1=true) 기본값 0 (false).
  • inputEncoding - The encoding to be assumed for SSI resources if one cannot be determined from the resource itself. 기본값은 기본 플랫폼 암호화이다.
  • outputEncoding - The encoding to be used for the result of the SSI processing.기본값은 UTF-8이다.
  • allowExec - exec command가 가능한가? 기본값은 false이다.

Filter Configuration

SSI 필터의 동작을 구성할 수 있는 필터 초기화 매개 변수들이 있습니다.

  • contentType - SSI 처리 이전에 반드시 일치되어야 하는정규 표현 형식이 적용됩니다. 당신만의 형식을 만들 때, don't forget that a mime content type may be followed by an optional character set in the form "mime/type; charset=set" that you must take into account. 기본값은 "text/x-server-parsed-html(;.*)?"입니다.
  • debug - 메세지에 대한 오류검출 세부 수치가 이 서블릿에 의해 기록됩니다. 기본값은 0입니다.
  • expires - SSI 지시자가 있는 페이지가 만료되기까지 걸리는 초. default behavior is for all SSI directives to be evaluated for every request.
  • isVirtualWebappRelative - Should "virtual" SSI directive paths be interpreted as relative to the context root, instead of the server root? (0=false, 1=true) Default 0 (false).
  • allowExec - exec command가 가능합니까? 기본값은 false 입니다.

Directives

SSI는 타입이 SSI 서블릿에 의해 처리되는 HTML 문서에 SSI 지시자를 내장시킴으로써 적용됩니다. 이 지시자는 클라이언트에 페이지를 보내기 전 이것을 해석한 결과로부터 대체됩니다. 지시자의 일반적인 형식은 다음과 같습니다.

<!--#directive [parm=value] -->

지시자들은 다음과 같습니다.

  • config - <!--#config timefmt="%B %Y" --> SSI에 의해 처리된 날짜 형식과 다른 항목들이 사용됩니다.
  • echo - <!--#echo var="VARIABLE_NAME" --> 변수값에 의해 대체될 것입니다.
  • The revision of the Common Gateway Interface that the server uses if enabled
  • exec - 호스트 시스템의 런 코멘드에 의해사용됩니다.
  • include - <!--#include virtual="file-name" --> 컨텐츠를 삽입합니다.
  • flastmod - <!--#flastmod file="filename.shtml" --> 파일이 수정 손실된 시간을 반환합니다.
  • fsize - <!--#fsize file="filename.shtml" --> 파일의 크기를 반환합니다.
  • printenv - <!--#printenv --> 정의된 모든 변수의 목록을 반환합니다.
  • set - <!--#set var="foo" value="Bar" --> 사용자 정의 변수로 변수를 배정할 때 사용됩니다.
  • if elif endif else - 조건부 섹션을 만드는 데 사용됩니다. 예를들자면,
  • <!--#config timefmt="%A" -->
    <!--#if expr="$DATE_LOCAL = /Monday/" -->
    <p>Meeting at 10:00 on Mondays</p>
    <!--#elif expr="$DATE_LOCAL = /Friday/" -->
    <p>Turn in your time card</p>
    <!--#else -->
    <p>Yoga class at noon.</p>
    <!--#endif -->

See the

SSI에 대한 아파치 소개 SSI지시자의 더많은 사용을 위한

Variables

SSI 시블릿은 현재 뒤에오는 변수들을 시행합니다.

Variable Name Description
AUTH_TYPE 이 사용자들에 대해 사용되는 인증유형: BASIC, FORM, etc.
CONTENT_LENGTH 형식으로부터 전달되는 데이타의 길이 (바이트 혹은 문자의 수).
CONTENT_TYPE "text/html"와 같은 질의 데이타의 MIME 형식.
DATE_GMT 현재의 데이타와 그리니치 표준 시간(GMT)
DATE_LOCAL 현재 데이타와 지역시간
DOCUMENT_NAME 현재 파일
DOCUMENT_URI 파일로 가는 가상경로
GATEWAY_INTERFACE The revision of the Common Gateway Interface that the server uses if enabled : "CGI/1.1".
HTTP_ACCEPT 클라이언트가 수용 가능한는 MIME 타입의 리스트.
HTTP_ACCEPT_ENCODING 클라이언트가 수용 가능한 압축 타입의 리스트.
HTTP_ACCEPT_LANGUAGE 클라이언트가 수용가능한 언어의 리스트.
HTTP_CONNECTION 클라이언트에서 연결이 관리되고있는 방법 : "Close" or "Keep-Alive".
HTTP_HOST 클라이언트가 요청하는 웹 사이트.
HTTP_REFERER 클라이언트에서 링크 된 문서의 URL.
HTTP_USER_AGENT 클라이언트가 요청을 실행하기 위해 사용하는 브라우저.
LAST_MODIFIED 현재 파일의 마지막 수정 날짜와 시간.
PATH_INFO 서블릿에 전달된 추가 경로 정보.
PATH_TRANSLATED 변수 PATH_INFO에게 받은 경로의 번역된 버전.
QUERY_STRING The query string that follows the "?" in the URL.
QUERY_STRING_UNESCAPED Undecoded query string with all shell metacharacters escaped with "\"
REMOTE_ADDR 요청을 하는 유저의 원격 IP 주소.
REMOTE_HOST 요청하는 유저의 원격 호스트네임.
REMOTE_PORT 요청하는 유저의 원격 IP 주소에서의 포트넘버.
REMOTE_USER 유저의 진짜임이 입증된 이름.
REQUEST_METHOD The method with which the information request was issued: "GET", "POST" etc.
REQUEST_URI 클라이언트가 본래 요청한 웹 페이지.
SCRIPT_FILENAME 서버의 최근 웹 페이지의 위치.
SCRIPT_NAME 웹 페이지의 이름.
SERVER_ADDR 서버의 IP 주소.
SERVER_NAME 서버의 호스트네임이나 IP 주소.
SERVER_PORT 서버가 요청받은 포트.
SERVER_PROTOCOL 서버가 사용하는 프로토콜. E.g. "HTTP/1.1".
SERVER_SOFTWARE 클라이언트의 요청에 응답하는 서버 소프트웨어의 정보
UNIQUE_ID A token used to identify the current session if one has been established.

Copyright © 1999-2013, Apache Software Foundation