Java对象“连接”不适用于已禁用的Cookie

时间:2012-12-05 13:04:30

标签: java javascript servlets cookies

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

request.getSession().setAttribute("connection"  , connection);

Object DBConnection,Session中的命名连接,是一个Object,它有一个静态的连接对象

protected static Connection con = null;

当用户登录时,使用

建立Connections
con = DriverManager.getConnection(url, this.user, this.password);

这也适用于已停用的Cookie。如果正在检查Connection和我要用System.out.println.

保存的con对象
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

所以现在我的问题。当我禁用cookie时,为什么我的连接中断了? 在我看来,cookie没有任何东西可以处理连接对象,或者JSP中保存的任何其他对象? 抛出Nullpointer的连接对象是包java.sql.Connection;

中的对象

1 个答案:

答案 0 :(得分:1)

此问题与应用程序或Web服务器如何在客户端存储会话ID有关:他们使用cookie进行此操作。

关于如何为已禁用的Cookie客户端启用会话绑定,您可以在同一个网站上查看此相关问题:How can i do sessions in java if some one disables cookies in my browser?