標籤:util ext.get get void 相關 text log efault struts
/** * 登入驗證攔截器 * */@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實現登陸攔截器