相关疑难解决方法(0)

使用JQuery的MVC:处理会话过期

我如何处理在某些页面上具有JQuery Ajax方法调用的MVC应用程序的会话到期.问题如下:

  • 当客户端达到会话超时时,我的每个控制器都会继承一个类,该类检查会话是否处于活动状态(查看某些内容,如站点会话,数据库会话等),并将客户端重定向到新页面,说明该会话到期; 但是当我使用JQuery ajax在某些按钮点击时调用控制器的方法时,情况就不同了,因为它会跳过继承类的验证并允许我留在页面上,但是当控制器试图结束执行时方法,显然它会抛出.Net错误:对象不是作为对象的实例创建的,没有找到会话变量等等.所有这些都是因为异步方法调用而未处理的过期会话.

我怎么能处理这种行为,哪种是处理它的最佳方法(尽可能多地尝试不修改应用程序代码的这么多部分)?

提前致谢.

PD:告诉我使用$.post()Jquery 可能很有用.

error-handling asp.net-mvc jquery

11
推荐指数
1
解决办法
9795
查看次数

HttpSession超时后重定向

我一直在看这个主题的很多帖子,但无法得到一个适用于我的案例的解决方案.

我正在使用带有JSF 2.0的Java EE 6(部署在JBoss AS 7.1上)

在我的web.xml身上:

    <session-config>
        <session-timeout>1</session-timeout>
    </session-config>
Run Code Online (Sandbox Code Playgroud)

当会话自动超时时,我希望将用户重定向到登录页面.

我试过的:

方法1:使用过滤器

我试过以下过滤器:

@WebFilter()
public class TimeOutFilter implements Filter {

        @Override
        public void init(FilterConfig filterConfig) throws ServletException { 
        }

        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
        ServletException {
        System.out.println("filter called");
        final HttpServletRequest req = (HttpServletRequest) request;
        final HttpSession session = req.getSession(false);
        if (session != null && !session.isNew()) {
            chain.doFilter(request, response);
        } else {
            System.out.println("Has timed out");
            req.getRequestDispatcher("/logon.xthml").forward(request, response);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java jsf timeout java-ee

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

asp.net-mvc ×1

error-handling ×1

java ×1

java-ee ×1

jquery ×1

jsf ×1

timeout ×1