我遇到了禁用 Cookie 的问题。我有一个用户使用他的用户帐户登录的页面。如果登录成功,连接本身会保存在会话中。
request.getSession().setAttribute("connection" , connection);
Object DBConnection,在Session中命名为connection,是一个Object,里面有一个静态的Connection con Object
protected static Connection con = null;
当用户登录时,建立连接
con = DriverManager.getConnection(url, this.user, this.password);
这也适用于去中心化的 cookie。如果正在检查我要保存的连接和 con 对象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 的连接 Object 是 Package 中的 Objectjava.sql.Connection;