我有一個servlet,它的init方法必須對自己進行一些HTTP調用。這是因爲我使用的是嵌入式應用程序,它啓動並且它是主界面,它是一個RESTful API。我不能也不真的想要使用內部類,因爲它們沒有記錄並且很難使用。所以我希望通過本地HTTP使用REST API。如何在init方法中獲得servlet的本地映射?
因此,我擴展了應用程序附帶的servlet,並修改了init方法,以便啓動一個線程,並對其本身執行一些HTTP調用。目前我硬連線「http://localhost:port/servlet/mapping/
」作爲路徑,但我想有一些動態的東西,至少可以檢測端口號和映射。
有沒有什麼體面的方式來做到這一點?我發現很多從HttpServletRequest
對象中提取信息的示例,但是在init方法中沒有它。你所擁有的是ServletContext
。
啊,順便說一句,我使用servlet API 3.0。
你對自己進行HTTP調用究竟意味着什麼? servlet容器將不會使servlet可用於HTTP調用,直到它的init()方法完成爲止 – morgano
如果仔細閱讀,我寫了「所以我啓動了一個執行HTTP調用的線程」。 init方法將在啓動線程後終止,並且線程將繼續執行請求。 – gotch4