我创建了一个带登录页面的简单网站,一切正常,除非用户点击浏览器中的GO BACK按钮,退出后会显示上一页。
我试图跟踪会话,但没有成功,有什么建议吗? ps:我更喜欢在服务器端编程实现这一点。
由于
这是我的重定向网址过滤器,如果有的话,这可能是问题所在的地方
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session= request.getSession(false);
if(request.getRequestURI().compareToIgnoreCase("/login.jsp")!=0&&
request.getRequestURI().compareToIgnoreCase("/")!=0)
{
if (session!=null &&!session.isNew())
{
chain.doFilter(req, res);
}
else
{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}
else
{
chain.doFilter(req, res);
}
}
答案 0 :(得分:1)
我能想到的两种快速方式:
调用以下javascript代码:
window.history.back(0)= window.location
将您的正文标记更改为:
< body onunload =“javascript:history.go(1)”>
答案 1 :(得分:-1)
如果您有两个页面page1和page2并且(page1重定向到第2页)并且您希望限制用户返回到page1,则使用javascript,只需将此代码放在page1即可。
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
function disableBack() {
window.history.forward()
}
window.onload = disableBack();
window.onpageshow = function (evt) {
if (evt.persisted)
disableBack()
}
});
</script>