1

セッションが無効になった場合にホームページにリダイレクトしたい。私のspring-servlet.xmlは

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
    <mvc:interceptor>
        <mvc:mapping path="/**" />
        <bean class="com.xxx.MyInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>

インターセプター :

public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
        if ((null == request.getSession(false))
                || (null == request.getSession(false).getAttribute(
                        "user"))) {
            System.out.println("user logged out...");
            RequestDispatcher rd = request.getRequestDispatcher("loginForm.htm");
            rd.forward(request, response);
            return false;
        }
        return super.preHandle(request, response, handler);
    }

しかし、それは機能していません...アプリケーションが開始されるたびに、メッセージが複数回出力され、最後にスタックオーバーフローが発生します..

ありがとうございました。

4

1 に答える 1

1

問題はマッピング パスにあるようです。/**loginForm.htmにマップされているため、傍受されています。この問題を解決するには、2 つの解決策があります。

<mvc:resources location="/resources/" mapping="/resources/**" />*.htm リクエストが傍受されないように定義します。*.htm ファイルがあるパスに従って、場所とマッピングの値を置き換えます。

もう1つのオプションは、インターセプターのマッピングを/*.do何か他のものに変更することです。

これがお役に立てば幸いです。乾杯。

于 2012-06-21T06:55:40.667 に答える