问题如下:
我现在用JSP写一个网站 ,前台有登陆页面login.jsp当用户登陆成功后显示index.jsp 现在问题来了 也就是说用户点击注销登陆后 我把session也清除了.可是如果再点一下IE的后退按钮又能返回到index.jsp
有一种方法是写一个中间页,也就是登陆以后经过中间判断session是否有值 有值就跳转到index.jsp否则就返回login.jsp
这种方法有时候并不能解决问题
我在网上看了好多方法都没解决这个问题, 谁能帮个忙把这个IE后退按钮搞定..
你这个问题和IE的后退没有直接关系,关于IE后退的问题可以看我博客的:
[url]http://ywbanm.iteye.com/blog/341560[/url]
你的问题是没有检查Session是否超时或者被清除,加一个CheckSession的Filter。
Web.xml中加:
[code="java"]
CheckSessionFilter
xxx.CheckSessionFilter
CheckSessionFilter
*.do
[/code]
CheckSessionFilter:
[code="java"]public class CheckSessionFilter implements Filter {
public CheckSessionFilter() {
super();
}
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpSession session = ((HttpServletRequest)request).getSession();
if (session != null) {
chain.doFilter(request, response);//session不为空继续执行
return;
}
request.getRequestDispatcher("/login.jsp ").forward(request, response);//session为空跳转到login.jsp
}
public void destroy() {}
}[/code]
试试写个过滤器怎么样。。
还有就是你没有禁止客户端的缓存,IE不会重新发出请求而是使用Cache的数据,在Jsp中加上:
禁止客户端的缓存。