2010-12-08 84 views
0

我正在面臨將相關的jar應用程序添加到現有jar應用程序的任務。 現有一個不使用太多的語言環境效益等方面,但我的新應該......tomcat中的過濾器

So like I have now : localhost:8080/old-app 
I want to have also : localhost:8080/[en|fr|...]/new-module 

任何人都可以點我的方向,怎麼一回事,因爲即使我覺得我得到的過濾器的想法,過濾器映射,我無法解決它。

編輯:我想保留舊的,也有機會獲得新的。

謝謝

問候, P.

+0

你想自動從/舊應用程序重定向到/新應用程序?或者你想讓舊的應用程序使用新的URL模式? – JoseK 2010-12-08 09:36:49

+0

恐怕這個問題對我沒有任何意義,你能詳細說一下嗎? – 2010-12-08 09:37:33

回答

1

如果你不想要的應用程序名稱例如上下文根localhost:8080/appname但是在/直接你必須把它放到tomcat/webapps/ROOT文件夾中。爲了獲得更多的複雜的URL映射工作看看http://ocpsoft.com/prettyfaces/

3

部署new-moduleROOT.war(或/META-INF/context.xml設置path/)。使用Tuckey's URLRewriteFilter重寫特定的URL並將語言部分轉換爲請求參數,以便request.getParameter()可用。它與Apache HTTPD的mod_rewrite非常相似。

URLRewriteFilter的替代方法是自定義過濾器,它在doFilter()方法中的用法如下。

String uri = request.getRequestURI(); 
if (uri.matches("^/\\w{2}(/.*)?$")) { 
    request.setAttribute("language", uri.substring(1, 3)); 
    request.getRequestDispatcher(uri.substring(3)).forward(request, response); 
} else { 
    chain.doFilter(request, response); 
} 

地圖這對/*url-pattern。該語言將通過request.getAttribute("language")轉發資源提供。

相關問題