2012-10-03 46 views
1

我很好奇在Java應用程序中執行URL重寫的最佳方法是什麼。 假設你有一個名爲test_app的應用程序,我將它部署在tomcat上。應用URLRewrite設計方法:在容器級別還是應用級別上重寫,爲什麼?

通過網址重寫我的意思是,而不是通過主機訪問應用程序:端口/ test_app /,我想通過做主機訪問它:端口/ fancy_URL_for_test_app /。

問題:URL重寫最好在哪裏?在tomcat容器上,或者通過使用某些東西的URLRewriteRule(意思是在應用程序級重寫)。

從設計的角度來看,在我看來,在tomcat層面重寫將是最好的方式,但是我注意到這裏有不同的意見,例如Is there a url rewriting engine for Tomcat/Java?

您能解釋一下爲什麼您會選擇在應用程序級別而不是容器級別進行重寫?

注意:我正在嚴格談論根環境重寫(即將主機:端口/ test_app /更改爲主機:端口/ fancy_root_context /而不是將host:port/test_app/login1更改爲主機:port/test_app/login2

在此先感謝 安德烈

回答

2

在大多數情況下,Tomcat的東西之前(或任何其他Java EE服務器) - 就像nginx的,阿帕奇等,我會處理重寫有

+0

對不起,整點問題是WHY,假設你在tomcat前沒有httpd,答案會改變,從概念poi nt的觀點?當然,httpd使重寫更容易,但tomcat也允許你重寫。忽略tomcat中稍微困難的事實,你能否提出你的答案的論點? – Andrei

+0

像apache和nginx這樣的普通http服務器的設計非常快速且輕便,還有一些小的任務,比如URL重寫。在此層處理它將導致更快的請求處理,而不是提到在流量增長時可以更好地處理擴展。 在應用程序級別處理重寫會給你更多的可能性,但問題是 - 你真的需要它嗎? –

+0

對,所以這是在容器級重寫的一個參數。爲什麼有人會在應用程序級別重寫它,如此鏈接所示? http://stackoverflow.com/questions/950497/is-there-a-url-rewriting-engine-for-tomcat-java 這有什麼好處嗎? – Andrei

相關問題