Using Java sessions for login/logout -
having trouble getting session work in java application.
my login.jsp page calls loginaction
page.
package struts.action; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; import org.apache.struts.action.actionform; import org.apache.struts.action.actionforward; import org.apache.struts.action.actionmapping; import struts.form.loginform; public class loginaction extends org.apache.struts.action.action { private final static string success = "success"; private final static string failure = "failure"; public actionforward execute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) throws exception { loginform lf = (loginform) form; httpsession session = request.getsession(true); if (lf.getusername().equals(lf.getpassword())) { session.setattribute("username", lf.getusername()); system.out.println(session.getattribute("username")); return mapping.findforward(success); } else { return mapping.findforward(failure); } } }
corresponding loginform page
package struts.form; import org.apache.struts.action.*; public class loginform extends actionform{ private string username; private string password; public loginform() { super(); } private static final long serialversionuid = 104092268304152302l; public string getusername() { return username; } public void setusername(string username) { this.username = username; } public string getpassword() { return password; } public void setpassword(string password) { this.password = password; } }
success.jsp, page shown when logged in
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> <!doctype html public "-//w3c//dtd html 4.01 transitional//en"><%@page language="java" contenttype="text/html; charset=iso-8859-1" pageencoding="iso-8859-1"%> <html> <head> <title>success</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body> <h1>hello: <% session.getattribute("username"); %></h1> <html:form action="/logoutaction" > <html:submit value="logout" /> </html:form> </body> </html>
logout action page package struts.action;
import javax.servlet.http.httpsession; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.struts.action.actionform; import org.apache.struts.action.actionforward; import org.apache.struts.action.actionmapping; public class logoutaction extends org.apache.struts.action.action { private final static string success = "success"; private final static string failure = "failure"; @override public actionforward execute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) throws exception { httpsession session = request.getsession(true); system.out.println(session.getattribute("username")); try{ session.removeattribute("username"); session.invalidate(); return mapping.findforward(success); }catch(exception ex){ system.out.println("error"); } return mapping.findforward(failure); } }
corresponding logoutform package struts.form; import org.apache.struts.action.*;
public class logoutform extends actionform{ private static final long serialversionuid = 1l; }
so session created in login action, , works, if use getattribute() , print console, username comes up. however, username won't show on success.jsp page.
can help?
you forgot put =
<h1>hello: <%= session.getattribute("username"); %></h1>
Comments
Post a Comment