会话管理:我正在做一个关于电子健康记录系统的项目。当我登录并遍历任何新页面时,在这种情况下,当我复制网址并注销并粘贴网址时,页面会在浏览器上重新加载。我希望它重定向到我的登录页面?我的所有页面都会发生这种情况。像所有搜索,更新,主页一样。任何人都可以提出一个解决方法吗?
答案 0 :(得分:0)
您需要为整个网站添加身份验证。例如,在ASP.NET MVC中,您将[Authorize]
属性添加到所有控制器。当您注销并尝试导航到需要身份验证的其中一个页面时,用户将被重定向到登录页面。
不知道你正在建立什么框架,但我不能再有所帮助了。
答案 1 :(得分:0)
我建议您使用Filter来处理会话,而不是为每个控制器方法编写会话检查。
做这样的事。
public class SessionFilter implements Filter {
public void destroy() {
}
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 (null == session) {
response.sendRedirect("index.jsp");
}
Boolean isLoggedIn = session.getAttribute("isLoggedIn"); // replace with your variable
if(!isLoggedIn)
response.sendRedirect("index.jsp");
chain.doFilter(req, res);
}
}
上面的代码可能需要进行一些修改,因此请根据您的要求进行修改。同时清除缓存以处理后退按钮的情况。