2010-12-15 22 views
0

ログインページでセッション属性を設定しています。ログアウトするとページをログアウトし、戻るボタンを押すとホームページに戻ります。ここでJSPでのセッションの問題

::::::::::::::::::::::::::**sessionaction.jsp**:::::::::::::::::::::::::::::::::::::: 

<%@page import="java.util.*" %> 
<% 
    String str = request.getParameter("UserName"); 
    session.setAttribute("sessUserName", request.getParameter("Password")); 
%> 

<% 
    if (session.getAttribute("sessUserName").equals("")) 
    { 
     response.sendRedirect("login.jsp"); 
%> 

<% 
    } 
else 
    { 
     response.sendRedirect("home.jsp"); 
    } 
%> 


::::::::::::::::::::::::::**logout.jsp**:::::::::::::::::::::::::::::::::::::: 
<%@page import="java.util.*" %> 

<% 
//session.invalidate(); 
session.removeAttribute("sessUserName"); 
%> 

You have logged out. Please 
<a href="login.jsp"><b>Login</b></a> 

は親切に私を案内し、私のコードです。また

答えて

2

がしようとした場合:

if (session.getAttribute("sessUserName") == null) 
2

設定したキャッシュヘッダ

response.setHeader("Cache-Control","private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 

のCache-Controlのために必要なメタタグが

+0

@thanks Asaph。スニペットで慣れる必要がある –

1

根本原因は、私は信じて、が既に提案されていますユーザーによってsje397(彼の答えを受け入れる)、私はここで詳しく述べる。理由は、セッションの無効化がlogin.jspのコードと同期していないためです。

あなたは以下のコード

if(session.getAttribute("sessUserName").equals("")) 

はその他

if(session.getAttribute("sessUserName")==null) 

に変更する必要がありますを意味しているセッションから属性を削除する: 戻るボタンがちょうどそのローカルからのホームページを表示することがありますキャッシュ。試してくださいdisabling the cacheとそれが動作するかどうか参照してください。