Hallo mensen,
ik weet dat je met javascript: parent.location.frame1.replace(''pagina.jsp") kunt bereiken dat de gebruiker niet meer op BACK kan duwen in de toolbar van internet explorer.
Nou zit ik met een probleem met struts.
Ik heb een inlog scherm (en dus ook een LoginAction). In de LoginAction maak een een bean UserBean aan met property username en die gooi ik in de sessie.
Ik heb een struts action LogoffAction. Deze doet het volgende:
de UserBean wordt eerst verwijderd, dan pas wordt de sessie ge-invalideerd.
Ik controleer op elke pagina met de logic:notPresent tag of de bean er nog is.
Het probleem:
ik log in op login.jsp, ik ga naar welcome.jsp. Op deze welcome.jsp doe ik dit:
het bovenstaande stukje code doet inhoud genereren aan de hand van of de gebruiker is ingelogd of niet.
Ondanks dit blijf ik het probleem houden dat als ik uitlog (en dus de sessie ge-invalideerd wordt) en ik duw op de back knop, dan laadt ie de ingelogde pagina uit het geheugen en als ik dan op een van de functies klik, moet ie naar de error pagina gaan (omdat de user niet ingelogd is). Maar dit doet ie niet en de bean blijkt wel nog te bestaan dan.
Ik weet dat dit opgelost kan worden als er aan de form action="/logoffaction" een soort replace hangt.
Hij gaat immers naar de "findforward success" pagina. Maar niet middels een replace, zoals je dat in Javascript kunt doen.
Weet iemand hoe ik dit moet doen?
ik weet dat je met javascript: parent.location.frame1.replace(''pagina.jsp") kunt bereiken dat de gebruiker niet meer op BACK kan duwen in de toolbar van internet explorer.
Nou zit ik met een probleem met struts.
Ik heb een inlog scherm (en dus ook een LoginAction). In de LoginAction maak een een bean UserBean aan met property username en die gooi ik in de sessie.
Ik heb een struts action LogoffAction. Deze doet het volgende:
code:
1
2
3
| HttpSession session=request.getSession;
session.removeAttribute("ub", UserBean);
session.invalidate(); |
de UserBean wordt eerst verwijderd, dan pas wordt de sessie ge-invalideerd.
Ik controleer op elke pagina met de logic:notPresent tag of de bean er nog is.
Het probleem:
ik log in op login.jsp, ik ga naar welcome.jsp. Op deze welcome.jsp doe ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <logic:notPresent name="uib" scope="session">
<FONT face="Verdana" size="3"><B><I> ERROR, no user detected!</I></B></FONT>
<BR />
<FONT face="Verdana" size="3">
U dient eerst in te loggen.
</FONT>
</logic:notPresent>
<logic:present name="uib" scope="session">
<FONT face="Verdana" size="3"><B><I> Welcome <bean:write name="uib" property="username"/>!
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td> </td>
</tr>
<tr>
<td>
<FONT face="Verdana" size="3"><B>Main menu</B></FONT>
</td>
</tr>
.....
.....
hier alle functies wat de gebruiker kan doen, onder andere uitloggen
....
....
</table>
</logic:present> |
het bovenstaande stukje code doet inhoud genereren aan de hand van of de gebruiker is ingelogd of niet.
Ondanks dit blijf ik het probleem houden dat als ik uitlog (en dus de sessie ge-invalideerd wordt) en ik duw op de back knop, dan laadt ie de ingelogde pagina uit het geheugen en als ik dan op een van de functies klik, moet ie naar de error pagina gaan (omdat de user niet ingelogd is). Maar dit doet ie niet en de bean blijkt wel nog te bestaan dan.
Ik weet dat dit opgelost kan worden als er aan de form action="/logoffaction" een soort replace hangt.
Hij gaat immers naar de "findforward success" pagina. Maar niet middels een replace, zoals je dat in Javascript kunt doen.
Weet iemand hoe ik dit moet doen?
Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar