欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Struts攔截器實現(xiàn)攔截未登陸用戶實例解析

 更新時間:2018年02月11日 16:13:35   作者:小糖豆巴拉巴拉  
這篇文章主要介紹了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")) {
				//如果用戶準備去登錄,則放行
				return invocation.invoke();
			}
			{
				return "loginUI";
				//如果用戶不是去登錄,又沒有登錄,則轉(zhuǎn)到登錄頁面
			}
		} else {
			return invocation.invoke();
			//如果用戶已經(jīng)登錄,則執(zhí)行相應的方法
		}
	}
}

然后再配置struts2.xml里:

<!-- 登錄攔截器的聲明 -->
    <interceptors>
      <!-- 聲明你已經(jīng)寫好的攔截器 -->
      <interceptor name="checkPrivilege"
        class="com.cjdx.utils.CheckPrivilegeInterceptor"></interceptor>
      <!-- 將已經(jīng)聲明的攔截器加到默認的攔截器里面去 -->
      <!-- 這個攔截器的名字就叫做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é)

以上就是本文關于Struts攔截器實現(xiàn)攔截未登陸用戶實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Java Jackson之ObjectMapper常用用法總結(jié)

    Java Jackson之ObjectMapper常用用法總結(jié)

    這篇文章主要給大家介紹了關于Java Jackson之ObjectMapper常用用法的相關資料,ObjectMapper是一個Java庫,用于將JSON字符串轉(zhuǎn)換為Java對象或?qū)ava對象轉(zhuǎn)換為JSON字符串,需要的朋友可以參考下
    2024-01-01
  • Java編程中的一些常見問題匯總

    Java編程中的一些常見問題匯總

    這篇文章主要介紹了Java編程中的一些常見問題匯總,本文總結(jié)的都是一些Java代碼中比較典型的錯誤,需要的朋友可以參考下
    2014-09-09
  • Java實現(xiàn)redis分布式鎖的三種方式

    Java實現(xiàn)redis分布式鎖的三種方式

    本文主要介紹了Java實現(xiàn)redis分布式鎖的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Spring Boot基于Active MQ實現(xiàn)整合JMS

    Spring Boot基于Active MQ實現(xiàn)整合JMS

    這篇文章主要介紹了Spring Boot基于Active MQ實現(xiàn)整合JMS,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • springMVC幾種頁面跳轉(zhuǎn)方式小結(jié)

    springMVC幾種頁面跳轉(zhuǎn)方式小結(jié)

    本篇文章主要介紹了springMVC 幾種頁面跳轉(zhuǎn)方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Java二分查找算法實現(xiàn)代碼實例

    Java二分查找算法實現(xiàn)代碼實例

    這篇文章主要介紹了Java二分查找算法實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • zuul集成Sentinel,完成對path映射的限流操作

    zuul集成Sentinel,完成對path映射的限流操作

    這篇文章主要介紹了zuul集成Sentinel,完成對path映射的限流操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 將Java對象序列化成JSON和XML格式的實例

    將Java對象序列化成JSON和XML格式的實例

    下面小編就為大家分享一篇將Java對象序列化成JSON和XML格式的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Mybatis查詢時的延遲加載解析

    Mybatis查詢時的延遲加載解析

    這篇文章主要介紹了Mybatis查詢時的延遲加載解析,先從單表查詢,需要時再從關聯(lián)表去關聯(lián)查詢,能大大提高數(shù)據(jù)庫性能,因為查詢單表要比關聯(lián)查詢多張表速度要快,延遲加載分為兩種:深度延時加載,侵入式延遲加載,需要的朋友可以參考下
    2023-10-10
  • 詳解Java如何利用反射提高代碼的靈活性

    詳解Java如何利用反射提高代碼的靈活性

    反射是Java語言的一種特性,它允許程序在運行時動態(tài)地獲取類的信息并操作類的屬性、方法和構(gòu)造函數(shù),使得我們的代碼更加靈活和可擴展,下面就來看看Java中反射機制的具體操作吧
    2023-05-05

最新評論