Struts攔截器實現(xiàn)攔截未登陸用戶實例解析
本文研究的主要是Struts攔截器實現(xiàn)攔截未登陸用戶,具體實現(xiàn)如下。
首先建立一個工具類:
checkPrivilegeInterceptor:這個類繼承interceptor,這是一個接口,要實現(xiàn)三個方法,要是覺得比較多的話,可以繼承他的實現(xiàn)類AbstractInterceptor,繼承這個類以后只需要重寫一個方法,就是在這個方法里面控制,是否登錄,登錄以后有哪些權(quán)限,等等,代碼如下;
package com.cjdx.utils;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.cjdx.domain.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
//檢查是否有權(quán)限,這里只檢查知否登錄
public class CheckPrivilegeInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
User user = (User) ActionContext.getContext().getSession().get("user");
String nameSpace = invocation.getProxy().getNamespace();
String actionName = invocation.getProxy().getActionName();
String privilegeUrl = nameSpace + actionName;
if (user == null) {
// 如果用戶沒有登錄
if (privilegeUrl.startsWith("/user_login")) {
//如果用戶準(zhǔn)備去登錄,則放行
return invocation.invoke();
}
{
return "loginUI";
//如果用戶不是去登錄,又沒有登錄,則轉(zhuǎn)到登錄頁面
}
} else {
return invocation.invoke();
//如果用戶已經(jīng)登錄,則執(zhí)行相應(yīng)的方法
}
}
}
然后再配置struts2.xml里:
<!-- 登錄攔截器的聲明 -->
<interceptors>
<!-- 聲明你已經(jīng)寫好的攔截器 -->
<interceptor name="checkPrivilege"
class="com.cjdx.utils.CheckPrivilegeInterceptor"></interceptor>
<!-- 將已經(jīng)聲明的攔截器加到默認(rèn)的攔截器里面去 -->
<!-- 這個攔截器的名字就叫做defaultStack,這樣就直接覆蓋了原來的defaultStack -->
<!-- 如果不這樣寫,還可以在像注釋這樣添加 -->
<interceptor-stack name="defaultStack">
<interceptor-ref name="checkPrivilege"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
<!--
<interceptor-stack name="myStack">
<interceptor-ref name="checkPrivilege"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
<interceptor-stack name="defaultStack">
<interceptor-ref name="myStack"></interceptor-ref>
</interceptor-stack>
-->
</interceptors>
總結(jié)
以上就是本文關(guān)于Struts攔截器實現(xiàn)攔截未登陸用戶實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Java Jackson之ObjectMapper常用用法總結(jié)
這篇文章主要給大家介紹了關(guān)于Java Jackson之ObjectMapper常用用法的相關(guān)資料,ObjectMapper是一個Java庫,用于將JSON字符串轉(zhuǎn)換為Java對象或?qū)ava對象轉(zhuǎn)換為JSON字符串,需要的朋友可以參考下2024-01-01
Spring Boot基于Active MQ實現(xiàn)整合JMS
這篇文章主要介紹了Spring Boot基于Active MQ實現(xiàn)整合JMS,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
springMVC幾種頁面跳轉(zhuǎn)方式小結(jié)
本篇文章主要介紹了springMVC 幾種頁面跳轉(zhuǎn)方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

