2010-01-31 5 views
2

내 tomcat6은 로케일 en_US가있는 JVM에서 실행 중입니다. 여러 웹 응용 프로그램을 배포해야합니다 & 다른 webapp (war 파일에 패키지 됨)에 다른 기본 로캘을 지정하고 싶습니다. 이것이 가능한가 ?JVM과 다른 전쟁의 로케일을 설정 하시겠습니까?

+0

그렇다면 이들 중 어느 것도 올바른 대답이 아닙니까? 답변을 찾았습니까? –

답변

1

아니요. 그러나 각 JSP 페이지에서 명시 적으로 로케일을 설정할 수 있습니다. 세션 개체 또는 리소스에 로캘을 저장합니다.

세지 개체를 사용하는 경우 사용자는 국제 환경에서 좋을 수도있는 고유 한 개별 로캘을 가질 수 있습니다.

1

(주의해야 할 점은 : 아직 자바 로케일 물건을 많이하지 않은.)

당신은 실제 JSP를의 코드 또는 경우에 당신이 가능하게 할 수 서블릿에서이 일을 피하려고. 의 경우 구성 방법 (놀라운 것 같습니다)이 없다면 이 거의 스트레이트 구성 방법이 될 것입니다. 필터를 사용하여이를 수행 할 수 있습니다.

javax.servlet.Filter의 하위 클래스 만들기 관련 응용 프로그램의 web.xml에 설치하고 doFilter 구현에 ServletResponsesetLocale를 호출합니다. 아니면 그 라인을 따라 뭔가. 이렇게하면 특정 사용자에 대해 특정 작업을 수행 할 수 없으므로 자신의 로캘을 사용할 수 있습니다 (유용한 경우).

이전에 필터를 사용해 본 적이 없다면 쉽게 죽을 수 있습니다. 다음

public void doFilter(
    ServletRequest request, 
    ServletResponse response, 
    FilterChain chain 
    ) 
throws IOException, ServletException 
{ 
    // Do your stuff here; so for instance: 
    response.setLocale(...); 

    // Chain to the next filter 
    chain.doFilter(request, response); 
} 

그리고 web.xml : 당신은 같이 보이는 (doFilter을) 당신은 당신이 획득하고 해제 할 자원이없는 한 두 가지가 대개 빈 스텁을하고, 세 방식의 인터페이스를 구현하고, 세 번째 일부는 다음과 같습니다

필터에 대한 멋진 것들을
<filter> 
    <filter-name>My Servlet Filter</filter-name> 
    <filter-class>com.example.MyServletFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>My Servlet Filter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 

하나는 당신이 (필자는이 경우에 당신이 생각하지 않아요해야하는 경우 request 또는 response를 통해 외관을 삽입 할 수 있지만 것을 누구 알고 있습니다) ServletRequestWrapperServletResponseWrapper utili 수업. 이 클래스는 request 또는 response 인스턴스를 랩핑하고 패스 스루 (pass-through)하는 기본 클래스입니다. 이것은 당신이 당신은 당신이 관여 할 필요가 어떤 요청이나 응답 방법 오버라이드 (override) 할 수 있습니다 자신의 래퍼 서브 클래스의 인스턴스로,에게 체인의 다음 필터에 통과 가져옵니다 request 또는 response 인스턴스를 대체 할 수 있음을 의미합니다.

필자는 필터 (및 래퍼)를 사용하여 다양한 작업을 수행했으며, 작업을 처리하고 응용 프로그램 별 구성 주도형 작업에 유용합니다.

관련 문제