我的tomcat6在區域設置爲en_US的JVM中運行。 我需要部署幾個webapps &我希望每個webapp(打包在war文件中)具有不同的默認語言環境。這可能嗎 ?設置與JVM不同的戰爭區域?
2
A
回答
1
不可以,但是,您可以在每個JSP頁面上明確設置區域設置。將區域設置存儲在會話對象或資源中。
如果您使用sesison對象,您的用戶可能會擁有自己的個人語言環境,這在國際環境中可能不錯。
1
(警告:我沒有做了很多用Java語言環境的東西呢。)
你想避免在JSP中的實際代碼或servlet的,如果你可能可以這樣做。如果沒有直接配置的方式來做到這一點(這似乎令人驚訝),我敢打賭有一個接近直接配置方式:你可以用一個過濾器。
創建你的子類的javax.servlet.Filter,在相關應用的web.xml
安裝它,在你doFilter
實現呼籲ServletResponse
setLocale
。或類似的規定。請注意,這並不妨礙您爲特定用戶執行特定操作,以便他們可以擁有自己的語言環境(如果有用的話)。
如果你之前沒有做過濾器,它們很容易(而且功能非常強大)。你只要實現三個方法接口,其中兩個是通常只是空存根,除非你有,你必須獲取和釋放資源,第三個(doFilter
),它看起來是這樣的:
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
部分看起來就像這樣:
<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
一個門面,如果你需要(我不認爲你在這種情況下,但誰知道)通過ServletRequestWrapper
和ServletResponseWrapper
utili ty類。這些是基類,只是包裝request
或response
實例並對它們進行傳遞。這意味着你可以更換獲取傳遞給鏈中的下一個過濾器的request
或response
情況下,使用您自己的包裝子類的實例,可以讓你覆蓋,你需要涉足任何請求或響應的方法。
我已經使用過濾器(和包裝)來做各種事情,他們工作的一種享受,並且對於特定於應用的配置驅動的東西來說非常棒。
相關問題
- 1. 不同的區域設置
- 2. EAR與多個戰爭或與遠程EJB的戰爭
- 3. Maven戰爭:限制戰爭
- 4. Heroku與Jetty Runner共同部署戰爭
- 5. AppEngine與Eclipse - 共同戰爭/資源
- 6. 使用Rails支持不同的區域設置區域i18n
- 7. 與Maven的戰爭扶養
- 8. 處理多戰爭的設置與使用Maven
- 9. 在不同地理區域設置git
- 10. 構建日期在與當前不同的區域設置
- 11. 更改textSize與不同的語言區域設置
- 12. 如何讓Maven運行戰爭:爆炸但不是戰爭:戰爭
- 13. Maven瘦戰與戰爭路線
- 14. 戰爭
- 15. 如何在android中設置不同的區域設置?
- 16. Laravel 5.4爲每個路由設置不同的區域設置
- 17. 兩種mail.jar與建立戰爭後的不同版本
- 18. Gradle與不同的資源和類進行多次戰爭
- 19. 如何在Ant腳本中設置具有不同目錄的戰爭文件
- 20. 如何爲不同的用戶設置不同的系統區域設置
- 21. Grails的戰爭
- 22. 的Maven插件戰爭不能排除爆炸戰爭格式
- 23. A碼的戰爭挑戰
- 24. maven yui壓縮戰爭:戰爭
- 25. 不同的部署爲不同的服務器與自定義戰爭大會
- 26. 不同的IDE打包不同的戰爭
- 27. 區域設置:onConfigurationChanged不叫
- 28. 將戰爭重定向到主域?
- 29. 如何在與Tomcat的戰爭中交付領域?
- 30. 與提升區域設置區域設置特定的to_lower問題
所以這些都不是正確的答案?你有沒有找到答案? – 2010-02-10 10:15:11