Struts2 - 重定向后会话丢失

时间:2014-08-30 04:21:35

标签: session java-ee redirect struts2 httpsession

我正在开发基于Struts2的Java EE Web应用程序(比如CNG)。在特定时刻,用户被重定向到支付网关(比如IM。com),然后IM重定向到CNG的动作。拦截器在每个Action检查会话变量之前运行,并且在从null。com返回后显示值IM

为什么会这样?我如何处理这个问题,以便在重定向到另一个应用程序后保留我的会话?

编辑:

我在Action中设置了这样的会话:

SessionMap<String, Object> sessionMap = (SessionMap<String, Object>) ActionContext.getContext().getSession();

sessionMap.put("userID","1234");

我重定向到这样的IM应用程序(在JSP上):

<a href="im.com/cng?q=1234">

IM,在成功付款/交易重定向到我的申请后 - cng.com/receivePayment?p=4321

我的拦截器在每次检查会话中的userID的操作之前运行:

 public String intercept(ActionInvocation invocation) throws Exception {
            // TODO Auto-generated method stub

            final ActionContext context = invocation.getInvocationContext();
            HttpServletResponse response = (HttpServletResponse)context.get(StrutsStatics.HTTP_RESPONSE);

            SessionMap<String,Object> sessionMap = (SessionMap<String,Object>)ActionContext.getContext().getSession();
            String m = invocation.getInvocationContext().getName();
            System.out.println(sessionMap.get("userID"));
            return invocation.invoke();

            }

IM重定向回CNG时,拦截器会运行并打印null,即我丢失了会话变量..

0 个答案:

没有答案