無効にされたCookieに問題があります。ユーザーが自分のユーザーアカウントでログインするページがあります。ログインが成功した場合、接続自体がセッションに保存されます。
request.getSession().setAttribute("connection" , connection);
セッションでconnectionという名前のオブジェクトDBConnectionは、静的なConnectionconObjectを持つオブジェクトです。
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
したがって、ログインは成功しました。これで、ユーザーはボタンのためにこちら側を離れて他の情報ページに移動します。ここで、この接続が再び必要になり、サーブレットで取得しています。
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;