Links User Guide 참고 아파치 톰캣 개발 | 디폴트 서블릿 레퍼런스What is the DefaultServlet |
디폴트 서블릿은 정적 자원들과 디렉토리 목록(디렉토리 목록이 지원된다면)을 지원하는 서블릿이다.
The default servlet is the servlet which serves static resources as well
as serves the directory listings (if directory listings are enabled).
|
Where is it declared? |
$CATALINA_BASE/conf/web.xml에 아래와 같이 전역적으로
선언되어 있다.
By default here is it's declaration:
| | | |
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
| | | | |
따라서, 디폴트 서블릿은 webapp의 시작시에 로드되고 디렉토리 목록은 접근할 수 없으며
디버깅 기능은 작동하지 않는 상태다.
So by default, the default servlet is loaded at webapp startup and
directory listings are disabled and debugging is turned off.
|
What can I change? |
디폴트 서블릿은 아래와 같은 초기화 인자를 허용한다.
The DefaultServlet allows the following initParamters:
debug |
디버깅 레벨. 톰캣 개발자가 아니라면 그다지 쓸모있진 않다.
이 글을 쓰는 시점에 유용한 값은 0,1,11,1000 가 있다.[0]
Debugging level. It is not very useful unless you are a tomcat
developer. As
of this writing, useful values are 0, 1, 11, 1000. [0]
|
listings |
welcome 파일이 없으면, 디렉토리 목록이 보여지는가?
If no welcome file is present, can a directory listing be
shown?
설정값은 true 나 false가 된다. [false]
value may be true or false [false]
Welcome 파일들은 서블릿 API의 일부이다.
Welcome files are part of the servlet api.
경고:
많은 엔트리를 포함하는 디렉토리 목록은 부하를 유발한다.
큰 디렉토리 목록에 대한 여러번의 요청이 서버의 자원을 눈에 띌 정도로 소모하게 된다.
WARNING: Listings of directories containing many entries are
expensive. Multiple requests for large directory listings can consume
significant proportions of server resources.
|
readmeFile |
디렉토리 목록이 나타난다면, readme 파일또한 목록과 함께 보여진다.
이 파일은 그대로 삽입되므로 HTML 을 포함할 수도 있다.
If a directory listing is presented, a readme file may also
be presented with the listing. This file is inserted as is
so it may contain HTML.
|
globalXsltFile |
디렉토리 목록을 수정하고 싶다면, XSL 변환을 사용하라.
이 값은 모든 디렉토리 목록에 사용되는 파일의 절대 경로 이름이다.
이는 컨텍스트 혹은 디렉토리당 override 될 수 있다.
아래의 contextXsltFile 와 localXsltFile
를 살펴보자. xml 형식이 자세히 나와 있다.
If you wish to customize your directory listing, you
can use an XSL transformation. This value is an absolute
file name which be used for all directory listings.
This can be overridden per context and/or per directory. See
contextXsltFile and localXsltFile
below. The format of the xml is shown below.
|
contextXsltFile |
You may also customize your directory listing by context by
configuring contextXsltFile . This should be a context
relative path (e.g.: /path/to/context.xslt ). This
overrides globalXsltFile . If this value is present but a
file does not exist, then globalXsltFile will be used. If
globalXsltFile does not exist, then the default
directory listing will be shown.
|
localXsltFile |
You may also customize your directory listing by directory by
configuring localXsltFile . This should be a relative
file name in the directory where the listing will take place.
This overrides globalXsltFile and
contextXsltFile . If this value is present but a file
does not exist, then contextXsltFile will be used. If
contextXsltFile does not exist, then
globalXsltFile will be used. If
globalXsltFile does not exist, then the default
directory listing will be shown.
|
input |
Input buffer size (in bytes) when reading
resources to be served. [2048]
|
output |
Output buffer size (in bytes) when writing
resources to be served. [2048]
|
readonly |
Is this context "read only", so HTTP commands like PUT and
DELETE are rejected? [true]
|
fileEncoding |
File encoding to be used when reading static resources.
[platform default]
|
sendfileSize |
If the connector used supports sendfile, this represents the minimal
file size in KB for which sendfile will be used. Use a negative value
to always disable sendfile. [48]
|
useAcceptRanges |
If true, the Accept-Ranges header will be set when appropriate for the
response. [true]
|
|
|