“Javaobject”;“连接”;不适用于禁用的Cookie

“Javaobject”;“连接”;不适用于禁用的Cookie,java,javascript,servlets,cookies,Java,Javascript,Servlets,Cookies,我对禁用的Cookie有问题。我有一个页面,其中一个用户登录他的用户帐户。如果登录成功,连接本身将保存在会话中 request.getSession().setAttribute("connection" , connection); 对象DBConnection(会话中名为connection)是一个对象,它具有一个静态连接con对象 protected static Connection con = null; 当用户登录时,将与建立连接 con = DriverManager.get

我对禁用的Cookie有问题。我有一个页面,其中一个用户登录他的用户帐户。如果登录成功,连接本身将保存在会话中

request.getSession().setAttribute("connection"  , connection);
对象DBConnection(会话中名为connection)是一个对象,它具有一个静态连接con对象

protected static Connection con = null;
当用户登录时,将与建立连接

con = DriverManager.getConnection(url, this.user, this.password);
这也适用于dectivated Cookie。if正在检查连接和我想用
System.out.println.

System.out.println(("DBConnection == null: " + connection == null));
System.out.println("Connection" connection.getCon());
//result ->
//DBConnection == null: false
//oracle.jdbc.driver.T4CConnection@15d51e5
所以登录成功了。现在,用户离开这一边,通过一个按钮转到其他一些信息页面。在这里,我再次需要这个连接,我在一个Servlet中获得它

DBConnection connection = (DBConnection)request.getSession().getAttribute("connection");
使用与以前相同的System.out.println,启用Cookie时,它会给出与以前相同的结果。禁用Cookie时,它会抛出一个异常,结果如下:

DBConnection == null: false
java.lang.NullPointerException
现在我的问题是。当我禁用cookies时,为什么我的连接中断? 在我看来,cookies没有任何东西来处理连接对象,或者JSP中保存的任何其他对象?
抛出空指针的连接对象是包
java.sql.connection中的对象

此问题与应用程序或web服务器如何在客户端存储会话id有关:他们使用Cookie进行存储


关于如何为禁用的Cookie客户端启用会话绑定,您可以在同一个站点上查看此相关问题:

您真正的问题更大。您正在HTTP会话中存储外部DB资源。这是一个非常糟糕的主意!它应该在尽可能短的范围内创建、使用和关闭,并且绝对不能存储在HTTP会话中,因为HTTP会话的寿命可能超过允许打开的DB连接的时间(因此,当存在多个会话时,可能会导致其泄漏或可用连接的耗尽)。