Java 基于Tomcat表单的身份验证在会话超时后加载ajax内容,而不使用页面包装器

Java 基于Tomcat表单的身份验证在会话超时后加载ajax内容,而不使用页面包装器,java,ajax,tomcat,Java,Ajax,Tomcat,Java应用程序在会话超时且用户重新登录后加载原始ajax数据 情景: 用户成功登录 应用程序加载并在会话超时期间处于空闲状态 用户选择一个ajax调用选项来刷新页面内容 由于超时时间已过,用户将被重定向到WEB.XML文件中定义的基于表单的登录页面 用户再次成功登录 问题从这里开始:因为上一个URL请求是针对ajax调用的,所以页面加载了原始内容,而没有完整的HTML页面包装器 问题:因为Tomcat正在处理登录和会话创建过程- 我如何处理这种情况,或者发送回一个完整的HTML页面和请求,或者

Java应用程序在会话超时且用户重新登录后加载原始ajax数据

情景:

用户成功登录 应用程序加载并在会话超时期间处于空闲状态 用户选择一个ajax调用选项来刷新页面内容 由于超时时间已过,用户将被重定向到WEB.XML文件中定义的基于表单的登录页面 用户再次成功登录 问题从这里开始:因为上一个URL请求是针对ajax调用的,所以页面加载了原始内容,而没有完整的HTML页面包装器 问题:因为Tomcat正在处理登录和会话创建过程-


我如何处理这种情况,或者发送回一个完整的HTML页面和请求,或者只是将用户发送到应用程序登录页面

我希望有一个更优雅的解决方案,但以下是我为解决我的问题所做的

在servlet控制器的顶部,我添加了以下代码。如果会话变量FirstTimeIn为null,我知道用户刚刚登录。然后检查userPath是否为/ajaxCall。我使用它来识别所有ajax请求。如果userPath是/ajaxCall,那么我将用户重定向到web应用程序的登录页

if (session.getAttribute("FirstTimeIn") == null) {
        session.setAttribute("FirstTimeIn", "No");
        if (userPath.equals("/ajaxCall")) {
            response.sendRedirect("sc?action=dashboard");
        }
 }