我有一個基於JSP的Web應用程序,它正在訪問SOAP服務以進行一些驗證憑證驗證。 我想將這個服務URL放在應用程序範圍的變量中,這樣我就可以輕鬆地傳遞給SOAP調用。什麼是最好的方法來做到這一點?把它放在init-param中,然後將它傳遞給init上的application.wsdlurl?初始化應用程序作用域變量
回答
您需要在web.xml
的servlet定義中將其定義爲<init-param>
。
<servlet>
<servlet-name>yourServlet</servlet-name>
<servlet-class>com.example.YourServlet</servlet-class>
<init-param>
<param-name>wsdlurl</param-name>
<param-value>http://...</param-value>
</init-param>
</servlet>
如下您可以指定它作爲servlet的一個實例變量:
public class YourServlet extends HttpServlet {
private String wsdlurl;
@Override
public void init() throws ServletException {
wsdlurl = getServletContext().getInitParameter("wsdlurl");
// Do if necessary some validation.
// E.g., if null, then throw ServletException.
}
// ...
}
非常感謝!這聽起來可能是新手,但我只是用webapps /(root)中的所有必要的前端邏輯構建了我的應用程序。更復雜的auth-soap部分被封裝在類(WEB-INF/classes/$ packages)中。我知道這並不是真的被認爲是「最佳實踐」,但它沒有真正的缺點(afaik)。我將如何使前端(/ ..)和後端(類)可訪問這些參數? – AlessandroEmm
如果他們有權訪問'ServletContext',則可以將其設置爲它的一個屬性。但是,如果他們沒有,那麼你應該忘記init-param方法,而是使用一個屬性文件來創建一個靜態加載和保存它的類。 – BalusC
據我所知,您授予「
- 1. 應用程序初始化
- 2. 未初始化的經典ASP應用程序變量
- 3. 每當JSP應用程序運行時初始化sessionScope變量
- 4. 的iOS初始化任何變量崩潰的應用程序
- 5. Swift:Prime Number應用程序:變量初始化
- 6. SQLiteOpenHelper變量初始化/整個應用程序
- 7. 在多個textareas上初始化TinyMCE - 變量作用域問題?
- 8. Django應用程序初始化過程
- 9. 變量初始化?
- 10. 初始化變量
- 11. 初始化變量
- 12. 變量初始化
- 13. 變量初始化
- 14. 初始化變量
- 15. 初始化變量
- 16. 初始化變量
- 17. 應用程序的一次初始化
- 18. 如何當應用程序初始化
- 19. Angular 2應用程序庫初始化
- 20. Android應用程序初始化
- 21. 「無法初始化應用程序0xc000005」
- 22. 初始化Android應用程序
- 23. 初始化vuejs應用程序
- 24. 類初始化中斷應用程序
- 25. nodester初始化應用程序錯誤
- 26. Catel應用程序初始化
- 27. JAX-RS應用程序的初始化
- 28. WPF應用程序初始化狀態
- 29. 如何在mfc應用程序的開始初始化一個變量
- 30. 通過初始化程序向ActiveRecord :: Base添加作用域?
你的問題是混亂的。您在標題和標籤中提到了JSP,但您正在談論一個servlet。儘管JSP最終被編譯爲一個servlet,但JSP與servlet並不相同。 – BalusC
對不起,這個蹩腳的問題。我有一個基於JSP的身份驗證站點。通過SOAP(JAX-WS)訪問Auth-Backend。這個應用程序會有多個實例。因此,Auth-URL需要在每個環境中進行配置。我閱讀了關於getInitParameter()和應用程序範圍的全域程序訪問URL。但我在哪裏定義? 再次感謝! – AlessandroEmm
你確實可以爲此使用init-param。我用一個例子發佈了一個答案。 – BalusC