Question

struts.xml

<action name="firstLogin" class="com.action.LoginAction">
        <result name="success">welcome.jsp</result>
        <result name="error">loginError.jsp</result>
    </action>

    <action name="logout" class="com.action.LoginAction" method="logout">
        <result name="success">Index.jsp</result>
    </action>

index.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>
<s:form action="firstLogin" method="post">
<s:textfield name="adminId" label="Admin ID"></s:textfield>
<s:password name="adminPassword" label="Password" />
<s:submit value="LOGIN" />
</s:form>

LoginAction.jsp

package com.action;
import java.util.Map;

import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.SessionAware;

import com.dao.DBOperationsDao;


public class LoginAction implements SessionAware {
//LoginModel modelObj=new LoginModel(); 
private String adminId;
private String adminPassword;
SessionMap<String,String> sessionMap;



public void setAdminId(String adminId) {
    this.adminId = adminId;
    System.out.println("setter 1...............");

}

public String getAdminId() {
    return adminId;
}
public void setAdminPassword(String adminPassword) {
    this.adminPassword = adminPassword;
    System.out.println("setter 2...............");
}
public String getAdminPassword() {
    return adminPassword;
}

public String execute() throws Exception{
    int i=DBOperationsDao.adminAuth(this);

    if(i>0){
        return "success";
    }
    else{
        return "error";
    }

}

public void setSession(Map map){
    sessionMap =(SessionMap)map;
    sessionMap.put("login", "true");
    System.out.println("session value after set"+sessionMap.get("login"));
}

public SessionMap<String, String> getSessionMap() {
    return sessionMap;
}

public String logout(){
    sessionMap.invalidate();
    System.out.println("session value after              invalidate"+sessionMap.get("login"));
    return "success";
}

}

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>

<s:if test="%{#session['login']}">

<s:property value="%{#session['login']}"/>

<h3>Hello Admin </h3>
<a href="addUser.jsp">Add User</a> | <a href="search.jsp">Search User</a>|<a   href="logout">Logout</a>

</s:if>
<s:else>
<jsp:forward page="Index.jsp" />
</s:else>

question: logout is working fine, and if i hit the url also its redirecting to login page as i excepted but once after i logged out i can get the welcome page by clicking on back button in the browser. this shouldn't happens to me.. pls help me on this

No correct solution

OTHER TIPS

For that You have to clear the browser cache in logout page and the page used before you click logout Or its better to that in every page.

Add The code below in start of every page inside jsp scriplet.

response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-store"); 
response.setHeader("Expires", "0");
response.setDateHeader("Expires", -1);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top