2011-12-01 40 views
2

如果我有一個HttpServletRequest的實例,我可以使用request.getServerName()來獲取服務器名稱。但是,在控制器bean的後期初始化期間,我沒有HttpServletRequest的實例。在Spring控制器中從PostConstruct方法獲取服務器名稱

@Controller 
@RequestMapping(value = {"/data"}) 
public class DataController { 
    @PostConstruct 
    public void init() { 
     // how to get server name? 
    } 
} 

如何在這種情況下獲得服務器名稱?

回答

4

沒有好的方法來做到這一點。

一般來說,服務器不知道可用於從外部訪問它的名稱。實際上,HttpServletRequest.getServerName()也不是解決方案,因爲它返回一個用於發送該特定請求的名稱,而不是您想讓服務器知道的規範名稱。

典型的解決方案是爲屬性文件中的特定部署配置規範服務器名稱等。

+0

你說得對。除非有請求,否則servlet容器無法知道其服務器名稱。謝謝。 – gigadot

相關問題