java - 如何防止用户从系统注销后导航回 JSP 页面?
问题描述
目前,我在注销页面上使会话无效,并清除了主菜单中的缓存。但是当我单击“返回”按钮时,它会显示 HTTP 状态 500 - 内部服务器错误。
由于会话无效而不是此错误,如何继续显示登录页面?
Mainmene.jsp
<%
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
if(session.getAttribute("email")==null) {
response.sendRedirect("loginpage.jsp"); // GO TO LOGIN PAGE
}
%>
Logout.java
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html");
HttpSession session=request.getSession();
session.invalidate();
response.sendRedirect("loginpage.jsp");
}
解决方案
您可以使用Filter
检查 sessionScope 中是否存在用户对象并将其应用于给定类型的url-patterns
. 你可以在这里查看如何使用。
推荐阅读
- neural-network - 用于应力计算的非标度雅可比矩阵
- unity3d - 如何使用四元数统一实现飞机旋转
- magento2 - Magento 2 上的幽灵命令
- php - Laravel 刀片问题中的多个 foreach
- r - 单词预测应用程序使用了太多闪亮的内存?
- reactjs - 自定义钩子:不可变的 useState 来存储函数并避免无限循环
- java - 条件和解码中的 Oracle Like 运算符
- node.js - 如何从 NodeJS 后端应用程序到 Flutter Android 应用程序的通知?
- javascript - 如何使 Stack.Screen 选项样式设置为外部?
- java - Jackson InputCoercionException:替换超出范围的数字