java重定向并保持同一个会话_servlet-Java Web应用程序中的Session过期时如何重定向到“登录”页面?...

当会话在Java Web应用程序中过期时,如何重定向到登录页面?

这是一个错误的问题。 您应该区分“用户未登录”和“会话已过期”两种情况。 您基本上想在用户未登录时重定向到登录页面。在会话过期时不可以。 当前接受的答案仅检查HttpSession#isNew()。但是,当用户在同一会话中发送了多个请求(由JSP隐式创建会话或不由JSP隐式创建)时,这显然失败。 例如。 仅在登录页面上按F5时。

如前所述,您应该检查用户是否已登录。 考虑到您正在问这样的问题,而像HttpSession#isNew(),Shiro,Spring Security等标准身份验证框架已经透明地管理了这一问题(因此,无需对它们进行此类问题),那只能 表示您使用的是本地认证方式。

假设您将登录用户存储在会话中的某些登录servlet中,如下所示:

@WebServlet("/login")

public class LoginServlet extends HttpServlet {

@EJB

private UserService userService;

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);

}

@Override

protected void doPost(Ht

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值