いくつかの機能を処理し、その結果をjspページに送るjava HttpServletクラスと一緒に動作する「look up」htmlページがあります。セッション属性を維持する方法
ルックアップを実行するには、別のサーブレットでセッションに入れたloginresultオブジェクトが必要です。
これは、ログインサーブレットで何が起こるかです:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// get attributes that were filled in on the login webpage
request.getAttribute("username");
request.getAttribute("password");
String username = request.getParameter("username");
String password = request.getParameter("password");
LoginManager loginManager = new LoginManager(username.trim(), password.trim());
if (loginManager.doLogin() == true) {
javax.servlet.http.HttpSession session = request.getSession();
session.setAttribute("loginResult", loginManager.getLoginResult());
session.setAttribute("binding", loginManager.getBinding());
response.sendRedirect("lookup.html");
これは私のJSPページ内のルックアップサーブレットに何が起こるか
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
javax.servlet.http.HttpSession session = request.getSession();
LoginResult lr = (LoginResult) session.getAttribute("loginResult");
if(lr == null)
{
throw new Exception("Your session has expired, please log in again");
}
// some look up code
RequestDispatcher dispatcher = request.getRequestDispatcher("result.jsp");
request.setAttribute("result", result);
request.setAttribute("question", question);
request.setAttribute("xml", xml);
dispatcher.forward(request, response);
では、次のない入力ボタンです:ONCLICK = "window.location.href = 'lookup.html'"//
時には結果ページを非表示にするか最小化するか、何か待つか、あまりにも長く待ってからルックアップページに戻るそれは私のloginresultオブジェクト== nullが表示されます。 私の意見では、それは期限が切れています。 Apache Tomcatサーバーは、セッションを30分間標準で生き続けると考えましたが、
私のセッション属性が消える原因は何ですか?
私は、賢明な提案をするために、セッション属性の作成方法と後での使用方法を含むコードを投稿する必要があります。 –
「検索ページに戻る」というフレーズが不明です。あなたはログインしてから、ルックアップページに行き、しばらくの間ページを離れると、開いているページをもう一度見る(ルックアップページです)とセッションが消えますか?あなたは "返品"を正確に意味しますか? –
ログイン後、ルックアップページにアクセスします。ルックアップページから何かを照会することができます。結果は結果ページに表示されます。結果ページでは、検索ページに戻ることができます。セッション属性が存在する限り、再度照会することができます。だから私は、ユーザーのブラウザが開いている限り、セッションを最後にしたい。 –