用户退出和退出后按后退按钮又可以操作的问题
用户退出解决办法:
在JSP里写
Html代码
<html:button property="PassWordBackOutButton" ="PassWordBackOutJava();">退出</html:button>
VehicleDriveManageInte易做图ceBackOutJava()
{
location.href = "BackOut.jsp" ;
}
<html:button property="PassWordBackOutButton" ="PassWordBackOutJava();">退出</html:button>
VehicleDriveManageInte易做图ceBackOutJava()
{
location.href = "BackOut.jsp" ;
}
BackOut.jsp为我定义的清空session的代码,代码如下:
Html代码
<%
session.invalidate(); //这行为清空session
response.sendRedirect("UserLogin.jsp");//这行为转到的页面,我设置转到登陆页面
%>
<%
session.invalidate(); //这行为清空session
response.sendRedirect("UserLogin.jsp");//这行为转到的页面,我设置转到登陆页面
%>
好,用户退出功能完成,可是退出之后,按下后退按钮,看到了登陆时看过的页面,试着往文本框里输入了值,点提交,汗,提交成功了,这个是大事了,开始找解决办法,找来找去,暂时只有禁止缓存了,禁止缓存的方法为:
在想禁止缓存的页面的<body></body>里加入:
Html代码
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
即
Html代码
:<body>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
</body>
:<body>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
</body>
如果不管用,可以在Filter里也加上
Java代码
esponse.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
esponse.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
这样退出后再后退就不会访问到登陆时能看到的页面了,可是有一个缺点,就是禁止了缓存,每次执行一个页面的时候,都要重新提交,占资源,速度也会变慢,解决办法,有待进一步去发现,而且这样有一个非常重大的缺陷,就是用户在登陆的时候,如果提交了页面,再按后退的话,就会显示页面过期,所以,12 月23号上班,我又改进了一下用户退出,不禁止缓存了,现在的用户退出是,用户退出之后可以访问曾看过的页面,但是不可以提交东西了,如果填写的东西满足 errors的判断,一提交,就会返回到登陆页面,如果不满足errors判断的,就显示,请登陆后在进行操作。下面是实现的方法
有退出按钮的jsp
Html代码
<html:button property="ProtectListBackOutButton" ="ProtectListBackOutJava();">退出</html:button>
ProtectListBackOutJava()
{
location.href = "BackOut.jsp" ;
}
<html:button property="ProtectListBackOutButton" ="ProtectListBackOutJava();">退出</html:button>
ProtectListBackOutJava()
{
location.href = "BackOut.jsp" ;
}
BackOut.jsp //就是有退出功能的jsp
Html代码
<body>
<%
session.removeAttribute("sessionUserName");
session.removeAttribute("UserLogin.do");
session.invalidate();
response.sendRedirect("UserLogin.jsp");
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
%>
</body>
<body>
<%
session.removeAttribute("sessionUserName");
session.removeAttribute("UserLogin.do");
session.invalidate();
response.sendRedirect("UserLogin.jsp");
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
%>
</body>
相应的form
Java代码
public Actis validate(ActionMapping mapping,
HttpServletRequest request) {
Actis errors = new Actis() ;
if (request.getSession().getAttribute("sessionUserName")==null||"".equals(request.getSession().getAttribute("sessionUserName")))
{
errors.add("error",new ActionMessage(
补充:web前端 , HTML/CSS ,