是否可以使用Portlet 2.0 API從門戶網站獲取門戶網站的基本URL(如http://www.thisismyportal.com)?門戶網站的門戶網址
現在我打算手動構建它連接PorletRequest.getServerName()
,PortletRequest.getServerPort()
和PortletRequest.getContextPath()
;但它似乎有點笨拙(並且沒有PortletRequest.getProtocol()
)
是否可以使用Portlet 2.0 API從門戶網站獲取門戶網站的基本URL(如http://www.thisismyportal.com)?門戶網站的門戶網址
現在我打算手動構建它連接PorletRequest.getServerName()
,PortletRequest.getServerPort()
和PortletRequest.getContextPath()
;但它似乎有點笨拙(並且沒有PortletRequest.getProtocol()
)
我們在資源環境提供程序中具有這些配置屬性,用於生成用於通過電子郵件發送它們的外部URL。這是具體的解決方案,對我們來說這不是問題,因爲我們還有其他的屬性存儲在那裏,所以我們知道它將在運行時可用。我不知道這是否適合您的需求。這取決於你的情況。 另外,我們僅在登錄時使用https,所以我們始終生成http URL。
希望這會有所幫助。
雖然它很笨拙,但它是構建URL的最安全的方式;雖然沒有PortletRequest.getProtocol()
方法,但可以使用PortletRequest.isSecure()
方法來結束協議。
我建議針對使用基準URL的外部配置,原因有兩個。首先,它將成爲您跨環境維護的另一個配置項目(測試,集成,生產等等)。在配置中,使用當前請求保持完全可重現的東西是沒有什麼理由的。
其次,在某些情況下,可能無法指定特定的URL作爲門戶的「基本URL」。一個例子就是門戶服務器與多個主機或多個主機別名關聯的情況。