我遇到了禁用Cookie的问题。我有一个用户使用他的用户帐户登录的页面。如果登录成功,连接本身将保存在会话中。
request.getSession().setAttribute("connection" , connection);
Object DBConnection,Session中的命名连接,是一个Object,它有一个静态的连接对象
protected static Connection con = null;
当用户登录时,使用
建立Connectionscon = DriverManager.getConnection(url, this.user, this.password);
这也适用于已停用的Cookie。如果正在检查Connection和我要用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
所以现在我的问题。当我禁用cookie时,为什么我的连接中断了?
在我看来,cookie没有任何东西可以处理连接对象,或者JSP中保存的任何其他对象?
抛出Nullpointer的连接对象是包java.sql.Connection;
答案 0 :(得分:1)
此问题与应用程序或Web服务器如何在客户端存储会话ID有关:他们使用cookie进行此操作。
关于如何为已禁用的Cookie客户端启用会话绑定,您可以在同一个网站上查看此相关问题:How can i do sessions in java if some one disables cookies in my browser?