我不确定这个问题是否看起来很愚蠢。但我是 servlet 的新手。所以在这里发布我的问题。
我有一个包含大约 5 个 servlet 的应用程序,需要在获得与应用程序服务器(OIM)的连接后调用应用程序 API。所以我需要使用从其他 servlet 到 OIM 的现有连接,该连接由同一个 war 文件中的第一个 servlet 打开。
我的代码是这样的。
//Class 1
public class ValidateUserName extends HttpServlet {
//Servlet 1
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...
...
UserOperations userOperations = new UserOperations();
String CommonName = userOperations.getCommonName(userName);
String userStatus = userOperations.getUserStatus(userName);
...
...
}
...
...
}
//Class 2
public class UserOperations {
public UserOperations() {
String USERNAME = Utils.getProperty("USERNAME");
String PASSWORD = Utils.getProperty("PASSWORD");
String PROVIDER_URL = Utils.getProperty("PROVIDER_URL");
OIMConnect oimConnect = new OIMConnect();
this.oimClient = oimConnect.loginToOIM(USERNAME, PASSWORD, PROVIDER_URL);
}
...
...
}
//Class 3
public class PasswordReset extends HttpServlet {
//Servlet 2
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
/*
* I would like to use same oimConnect connection that was instantiated
* in UserOperations() constructor.
*/
}
...
...
}
我不能使用 setAttribute,因为我没有在 servlet 上引用 OIM 客户端。与 OIM 服务器的连接在非 servlet 类中打开。
在这种情况下,如何跨所有 servlet 使用现有的 OIM 连接?