利用struts2框架編寫攔截器,未登入的會被攔截
阿新 • • 發佈:2018-12-13
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