1. 程式人生 > >利用struts2框架編寫攔截器,未登入的會被攔截

利用struts2框架編寫攔截器,未登入的會被攔截

1、原理

第一步: 自定義一個實現Interceptor介面(或者繼承自AbstractInterceptor)的類。

第二步:在strutx.xml中註冊上一步中定義的攔截器。

第三步:在需要使用的Action中引用上述定義的攔截器,為了方便也可將攔截器定義為預設的攔截器,這樣在不加特殊宣告的情況下所有的Action都被這個攔截器攔截。

2、伺服器自定義攔截器,繼承AbstractInterceptor類,重寫intercept方法。

@Override     public String intercept(ActionInvocation invocation) throws Exception {         User user = (User) ServletActionContext.getContext().getSession().get("user");         if(user==null) {             ActionSupport actionSupport= (ActionSupport) invocation.getAction();             actionSupport.addActionError("您還沒有登入");             return "login";  //跳轉到登入頁面         }         return invocation.invoke();   //已經登入,放行     }

3.在struts.xml中註冊攔截器(將攔截器放在和所需要攔截的action放在同一個package中,不需要攔截的action,抽出來另外寫一個package放在裡面)

4、程式碼地址:

https://github.com/xuexionghui/mavenbos.git