본문으로 건너뛰기

8.3 JSP 설정

JBoss EAP 6에서 JSP 컨테이너가 동작하는 각종 항목을 설정하는 것이 가능하다. 웹 서브시스템의 configuration의 jsp-configuration에서 설정한다. 관리 콘솔에서 사용하는 프로파일의 Web Servlet/HTTP 페이지를 열어 JSP를 설정할 수 있다.

그림 5. 웹 관리 콘솔에서 JSP 설정

JSP 속성 설정

JSP 컨테이너가 동작하는 방식을 변경할 때 사용할 수 있는 값들은 다음 표와 같다. 웹 서브 시스템의 <jsp-configuration>은 한 번만 설정할 수 있다.

속성설명기본값
check-interval재컴파일이 필요한 JSP페이지들을 체크하는 주기를 초 단위로 지정한다. 값이 0일 경우에는 체크하지 않는다.0
development개발 모드를 설정한다. 운영 환경에서는 이 설정을 false로 한다.false
disabledtrue 일 경우 JSP 컨테이너를 사용하지 않는 상태가 된다.false
display-source-fragmentException 메시지에 소스 코드를 포함하여 출력한다.true
dump-smaptrue일 경우 JSR-045 표준에 대한 디버그를 출력한다.false
error-on-use-bean-invalid-class-attributeBean이 인스턴스화되지 못할 때 이를 컴파일 에러로 간주한다.false
generate-strings-as-char-arrayschar배열로서 String를 생성false
java-encodingJSP 파일을 자바 소스파일로 생성할 때 사용할 encoding을 지정UTF8
keep-generatedtrue로 설정하면 생성된 서블릿을 삭제하지 않고 유지true
mapped-file디버그하기 쉽게 정적 콘텐츠도 라인 수를 출력하도록 지정true
modification-test-intervalJSP변경 유무를 빈번하게 체크하지 않도록 변경시간 체크 주기를 초 단위로 지정한다.4초
recompile-on-fail컴파일 오류가 발생한 경우 modification-test-interval를 무시하고 강제적으로 recompile를 실행하도록 설정할 수 있다.false
scratch-dirJSP를 컴파일할 때에 사용하는 디렉터리. 기본값은 work 디렉터리를 사용한다.undefined
smapJSR-045 표준에 맞는 소스 맵 파일을 생성true
source-vm소스 파일이 호환되는 JDK 버전1.5
tag-poolingJSP 커스텀 태그 인스턴스 들을 풀로 관리한다.True
target-vm클래스 파일이 호환되는 JDK 버전1.5
trim-spaces응답 데이터에서 필요 없는 스페이스를 삭제false
x-powered-byHTTP 응답 헤더에 “X-Powered-By” 를 정보를 출력true

표 3. JSP의 주요 속성

💡 TIP: JSR-045 : Debugging Support for Other Languages

Java 클래스 파일에 JSP같이 Java 언어 이외의 줄 번호를 저장할 수 있는 구조

💡 TIP: X-Powered-By

HTTP 헤더에 아래와 같이 미들웨어 버전과 엔진 정보가 출력된다.

“X-Powered-By : Servlet 2.5; JBoss-5.0/JBossWeb-2.1”

해킹 방지 등 보안상의 이유로 출력하지 않으려면 x-powered-by를 false로 설정한다.

개발환경을 위한 JSP 설정

개발환경에서는 JSP 파일의 변경사항을 주기적으로 체크하여 변경된 JSP 파일이 컴파일되도록 설정하여야 한다. 변경된 JSP 파일이 컴파일되도록 설정하려면 development 모드를 true로 설정하고, check-interval에 변경된 JSP파일을 체크하는 주기를 초단위로 설정한다.

운영환경에서는 JSP를 컴파일하지 않도록 설정하는 것을 권장한다. 운영환경에서 꼭 필요한 경우라면 JSP 체크주기를 30초 이상으로 설정한다.

다음은 CLI를 사용하여 개발환경의 JSP 체크 주기를 설정하는 방법이다.

[standalone@localhost:9999 /] /subsystem=web/configuration=jsp-configuration:write-attribute(name=development,value=true)

{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}

[standalone@localhost:9999 /] /subsystem=web/configuration=jsp-configuration:write-attribute(name=check-interval,value=5)

{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}