session.setAttribute problem?
Jeg har lavet en event.jsp, som alle mine jsp sider bliver sendt til. Denne event.jsp sørger for at viderdiregerer til de rigtige sider.Problemet opstår hvis:
En bruger ikke udfylder noget i felterne og trykker ok.
Første gang diregeres brugeren til error.jsp og der vises en fejlmeddelse. (dette er ok)
Hvis brugeren nu trykkker på browserens tilbageknap og kommer tilbage til index.jsp, og her trykker igen på ok-knappen, så bliver min
session.setAttribute("fromPage", "index.jsp") ikke sat.
Det betyder at event.jsp ikke kender "fromPage", og derfor kan der ikke sendes videre til error.jsp.
Hvordan løses dette?
Her er 4 sider som symboliserer problemmet:
INDEX.JSP (bruges til at logge ind)
****************************************
<%
session.setAttribute("fromPage", "index.jsp");
%>
<html>
<head>
<title> </title>
</head>
<body>
<p><u><b>Login:</b></u></p>
<form name="form1" method="post" action="event.jsp">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="20%" id="AutoNumber1">
<tr>
<td width="50%">Bruger</td>
<td width="50%"><input type="text" name="USER" size="20"></td>
</tr>
<tr>
<td width="50%">Kodeord</td>
<td width="50%"><input type="password" name="PASSWORD" size="20"></td>
</tr>
</table>
<br>
<input type="submit" name="Loginknap" value="Login">
</form>
</body>
</html>
*************************************************
EVENT.JSP
(tjekker om brugernavn og password er ok, og sender
derefter brugeren til forside.jsp el. error.jsp)
<%@ page import=" java.util.*" %>
<HTML>
<HEAD>
<BODY>
<%
String fromPage = (String)session.getAttribute("fromPage");
String toPage = "";
if ( (fromPage != null) && (fromPage.length() > 0) ) {
session.removeAttribute("fromPage");
if (fromPage.equals("index.jsp")) {
String user = request.getParameter("USER");
String password = request.getParameter("PASSWORD");
boolean noError = true;
if ( (user != null) && (password != null) )
if ( user.equals("123") && (password.equals("123")) )
toPage = "forside.jsp";
else {
noError = false;
}
if (!noError) {
toPage = "error.jsp";
session.setAttribute("continuePage", "index.jsp");
session.setAttribute("errorMsg", "Ugyldigt login eller password.");
}
}
}
else {
toPage = "error.jsp";
session.setAttribute("errorMsg", "FEJL: [fromPage] er ukendt!.");
session.setAttribute("continuePage", "index.jsp");
}
response.sendRedirect(toPage);
%>
</BODY>
</HTML>
************************************************
FORSIDE.JSP
<%
session.setAttribute("fromPage", "forside.jsp");
%>
<html>
<head>
<title> </title>
</head>
<body>
dette er forsiden....
</body>
</html>
****************************************
ERROR.JSP (bruges til at vise fejlmeddelser på)
<HTML>
<HEAD>
<TITLE> </TITLE>
<BODY>
<%
String errorMsg = (String)session.getAttribute("errorMsg");
String toPage = (String)session.getAttribute("continuePage");
if ( ((errorMsg != null) && (errorMsg.length() > 0)) && ((toPage != null) && (toPage.length() > 0)) ) {
session.removeAttribute("errorMsg");
session.removeAttribute("continuePage");
%>
<H1><%=errorMsg%></H1>
<P>
<A HREF="<%=toPage%>"><B>Fortsæt</B></A>
<%
}
%>
</BODY>
</HTML>
Håber nogen kan hjælpe?
