1. 程式人生 > >SSH實現登陸攔截器

SSH實現登陸攔截器

return get() stub 根據 todo nac override invoke util

/**
 * 登錄驗證攔截器
 *
 */
@SuppressWarnings("serial")
public class LoginInteceptor implements Interceptor {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void init() {
        // TODO Auto-generated method stub

    }

    /**每次訪問Action類之前,先執行intercept方法
*/ @Override public String intercept(ActionInvocation invocation) throws Exception { //獲取當前訪問Action的URL String actionName = invocation.getProxy().getActionName(); //如果當前訪問Action的URL是"loginAction_login"(根據自己寫的來定)表示此時還沒有Sesion,需要放行 if(!"loginAction_login".equals(actionName)){
//從Session中獲取當前用戶對象 Employee employee = SessionContext.get(); //如果Session不存在,跳轉到登錄頁面 if(employee==null){ return "login";//這個login已經在struts.xml的全局結果視圖中配置了 } } //放行,訪問Action類中方法 return invocation.invoke(); } }

struts.xml中相關配置:

<!-- 攔截器配置 -->
        <interceptors>
            <!-- 定義了一個用於攔截器登錄的攔截器 -->
            <interceptor name="loginInterceptor" class="cn.itcast.ssh.utils.LoginInteceptor"></interceptor>
            <!-- 定義一個攔截器棧 -->
            <interceptor-stack name="systemStack">
                <interceptor-ref name="defaultStack" />
                <interceptor-ref name="loginInterceptor" />
            </interceptor-stack>
        </interceptors>
    
          <!-- 定義系統默認攔截器 全局 -->
        <default-interceptor-ref name="systemStack" /> 
        <!-- 全局結果視圖 -->
        <global-results>
            <result name="login" type="redirect">
                login.jsp
            </result>
        </global-results>

就這樣攔截器就實現了

SSH實現登陸攔截器