Struts2---自定義攔截器

做後臺管理系統需要有到登錄驗證功能,所以今天覆習了一下struts2的自定義攔截器,對登錄驗證,和對權限進行驗證


攔截器可以自由擴展,所有的攔截器都實現自Interceptor接口,實現自定義攔截器也要實現Intercepter接口,一般繼承AbstractInterceptor抽象類即可。

下面做了個驗證用戶是否登錄的例子:

LoginInterceptor.java:

package interceptor;

import java.util.Map;

import model.Admin;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginInterceptor extends AbstractInterceptor {

	public String intercept(ActionInvocation invocation) throws Exception {
		//通過invocation獲取本次調用的上下文
		Map<String, Object> session = invocation.getInvocationContext().getSession();
		//判斷是否登錄
		Admin admin = (Admin) session.get("nowUser");
		if(admin==null){
			//如果沒有登錄,將跳轉到登錄頁面
			return "toLogin";
		}else {
			//如果登錄,程序正常運行
			return invocation.invoke();
		}
	}
	
}

接下來需要配置struts.xml文件:

	<interceptors>
    		<interceptor name="loginInterceptor" class="interceptor.LoginInterceptor"></interceptor>
    	</interceptors>
		
	<global-results>
    		<result name="toLogin">/login.html</result>
    	</global-results>
		
	<action name="toIndex" class="action.LoginAction" method="toIndex">
		<interceptor-ref name="loginInterceptor"></interceptor-ref>
		<result>/index.html</result>
	</action>

配置struts.xml文件是需要注意package裏面元素的順序,參考文章:http://blog.csdn.net/lc448986375/article/details/8027150

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章