我有一個使用JSF(使用RichFaces 3.3)以JAVA編寫的企業應用程序。目前我的URL看起來像這樣:JSF中的掩碼URL
http://localhost/WebApplication/faces/folder1/page.jsp
問題是我怎麼掩飾我的網址,使之像這樣:
http://localhost/folder1/page.jps
基本上我想隱藏「應用/ faces /「
謝謝
我有一個使用JSF(使用RichFaces 3.3)以JAVA編寫的企業應用程序。目前我的URL看起來像這樣:JSF中的掩碼URL
http://localhost/WebApplication/faces/folder1/page.jsp
問題是我怎麼掩飾我的網址,使之像這樣:
http://localhost/folder1/page.jps
基本上我想隱藏「應用/ faces /「
謝謝
要在應用程序中重寫URL,可以使用UrlRewrite。然而,在這種情況下,它看起來像你想刪除您的Web應用程序的上下文路徑,在這種情況下,你有兩個選擇:
/
(如何爲特定應用服務器)Apache的配置:
<Proxy http://localhost:8080/*>
Order Allow,Deny
Allow From All
</Proxy>
ProxyPreserveHost On
ProxyPass/http://localhost:8080/WebApplication/
ProxyPassReverse/http://localhost:8080/WebApplication/
注意,/面/是由於在web.xml
的映射。這是JSF的標準映射,但您也可以使用擴展映射 - 即URL末尾的.faces
。
例如,在應用程序我這裏,這是在web.xml文件:
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
這是使用ICEfaces的,但它會隨着RichFaces的你相似。你的可能看起來像這樣:<url-pattern>/faces/*</url-pattern>
。如果你改變它具有*.faces
如上述,您的最終網址看起來會像這樣:
http://localhost/WebApplication/folder1/page.faces
如果您使用的是與答案相結合,彼得希爾頓給有關部署爲根Web應用程序,您的最終URL會是這個樣子:
http://localhost/folder1/page.faces
這幾乎正是你想要的。
PrettyFaces讓你重寫你的網址。 如果您更喜歡更輕量級的東西,請擴展NavigationHandler並覆蓋 handleNavigation,例如通過調用context.getExternalContext()。redirect()
是的。我們設計PrettyFaces正是來處理這種情況:
PrettyFaces – SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF/JSF2
您還可以從臉上更改文件夾名稱,以在jsp例如像這樣:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
然後你的URL將是這樣的:
http://localhost/WebApplication/jsp/folder1/page.jsp
如果將應用程序部署到應用程序服務器的上下文路徑中,它將如下所示:
http://localhost/jsp/folder1/page.jsp
這將是現在很難找出你使用JSF的是lamers ;-)但黑客可以通過自己的瀏覽器指向這樣http://localhost/folder1/page.jsp
+1的UrlRewrite鏈接的URL進行調查。我一直在尋找那樣的東西! – 2009-11-19 15:52:00