亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Struts2攔截器淺析

難度中級
時長59分
學習人數
綜合評分9.77
231人評價 查看評價
9.9 內容實用
9.7 簡潔易懂
9.7 邏輯清晰
  • 自定義攔截器的方式二

    查看全部
  • 自定義攔截器

    查看全部
  • 攔截器工作原理

    查看全部
  • (案例)開發權限驗證的攔截器. 效果:后臺有一個管理頁面,要求用戶必須是已登錄的用戶才能訪問頁面,如果用戶未登錄則不允許訪問此頁面. 1.首先創建一個管理頁面(manager.jsp)與登錄頁面(login.jsp). 2.創建一個專門用來跳轉到后臺管理頁面的action并配置,跳轉方法返回的字符串是對應結果集中的manager.jsp頁面,即管理頁面.因此當直接訪問此action時,就可以跳轉到后臺管理頁面(此時不需要登錄). 3.在login.jsp中需要定義表單,用于登錄,此表單提交到一個用來處理登錄信息的action來接收和處理表單的信息,在action中要獲取session對象.action中有一個處理信息的login()方法,表單提交到此action時便執行此login()方法,在方法里通過if語句判斷用戶輸入的用戶名與密碼是否正確. 如果都正確,便把登錄信息保存在Session當中,即session.put("loginsuccess",username)),login()方法直接返回SUCCESS即可. 如果用戶登錄失敗,則保存一個登錄失敗的信息進入session,即session.put("loginfalse","登錄失敗!").login()方法返回ERROR. 在strut.xml中配置此驗證登錄的action(跳轉的action已配置),當login()方法返回SUCCESS時,即登錄成功,則在<result>的路徑返回后臺管理頁面.否則返回登錄頁面,即login.jsp. <action name="" class=""> <result>web-inf/manager.jsp</result> <result name="error">/login.jsp</result> </action>

    查看全部
  • 使用攔截器進行用戶權限驗證1.創建被訪問的資源如后臺管理頁面manager.jsp將其放到WEB-INF下外部不能直接訪問 2.創建authAction將請求轉發到被訪問資源manager.jsp 3.創建登陸頁面login.jsp接收用戶登錄信息 4.創建loginAction處理登陸請求校驗登錄信息并將有效登陸信息或錯誤信息放到session中 其中有效登錄信息loginInfo用于步驟5攔截器校驗會話信息錯誤信息用于前臺頁面展示 5.創建攔截器authInterceptor對訪問authAction的請求進行攔截處理通過ActionContext獲取會話session并校驗session的登陸信息如果不為空即獲取權限放行否則攔截并轉發到登陸界面 總結如果只是一次登陸的話這里的2和5確實看起來很多余但是這個功能實際是為了多頁面訪問時校驗同一個session下是否有權限因此使用了兩個action進行請求轉發當第一次登陸之后用戶只需要直接訪問authAction就可以訪問到后臺資源無需再次登陸。

    查看全部
  • 下面是4個開發模式常用配置的簡介--- ? ?<!-- 開啟使用開發模式,詳細錯誤提示 --> ? ?<!-- <constant name="struts.devMode" value="true"/>--> ? ?<!-- 指定每次請求到達,重新加載資源文件 --> ? ?<!-- <constant name="struts.i18n.reload" value="true"/>--> ? ?<!-- 指定每次配置文件更改后,自動重新加載 --> ? ?<!-- <constant name="struts.configuration.xml.reload" value="true"/>--> ? ?<!-- 指定XSLT Result使用樣式表緩存 --> ? ?<!-- <constant name="struts.xslt.nocache" value="true"/>-->

    查看全部
  • 默認攔截器棧: <!-- 為Action顯示引用攔截器后,默認的攔截器defaultStack不再生效,需要手工引用。而且從順序角度去講,最好把默認的攔截器寫在自定義攔截器上面 --> <interceptor-ref name="defaultStack"></interceptor-ref>

    查看全部
  • 1.定義攔截器 1.1.創建一個攔截器類繼承自AbstractInterceptor類 1.2.實現intercept方法 eg: public String intercept(ActionInvocation invocation) throws Exception { //1.執行action之前 long start=System.currentTimeMillis(); //2.執行下一個攔截器,如果是最后一個攔截器,則執行目標action String result=invocation.invoke(); //3.執行action之后 long end=System.currentTimeMillis(); //4.花費的時間 long time=end-start; System.out.println("執行花費的時間: "+time+" ms"); return result; } 2.配置攔截器 ? ? ? <interceptors> ? ? ? ? ?<interceptor name="timeinterceptor" class="com.imooc.interceptor.TimerInterceptor"></interceptor> ? ? ? </interceptors> 3.引用攔截器 <interceptor-ref name="timeinterceptor"></interceptor-ref>

    查看全部
  • 自定義攔截器: 1.方法一:實現Interceptor接口 -void init():初始化攔截器所需資源 -void destroy() :釋放在init()中分配的資源 -String intercept(ActionInvocation ai)throws Exception 實現攔截器功能,利用ActionInvocation參數獲取Action狀態,返回result字符串作為邏輯視圖。 2.方式二:繼承AbstractInterceptor類 -提供了init()和destroy() 方法的空實現 -只需要實現intercept方法即可 實際開發當中一般會去繼承AbstractInterceptor這個父類

    查看全部
  • 攔截器: Struts2大多數核心功能是通過攔截器實現的,每個攔截器完成某項功能。 攔截器方法在Action執行之前或者之后執行。 攔截器棧: 從結構上看,攔截器棧相當于多個攔截器的組合。 在功能上看,攔截器棧也是攔截器。 攔截器的執行過程是一個遞歸的過程,工作原理類似于過濾器。

    查看全部
  • strust2的工作流程: 客戶端通過HttpServletRequest向Tomcat容器發送請求---->過濾器(核心控制器StrutsPrepareAndexecuteFiler)----> 核心控制器訪問ActionMapper來決定是否調用某個action(如果是jsp頁面等則不會調用action)------> 核心控制權ActionProxy(action代理)---->ConfigurationManager(配置管理器)加載struts.xml找到要調用的action---> ActionProxy(action代理)創建Action invocation實例--->調用攔截器123————》攔截器執行完后才執行action 調用action業務處理方法 同時這個方法返回一個 字符串結果--->根據字符串去匹配視圖--->再次倒序執行攔截器321 ----最后通過HttpServletRequest響應請求

    查看全部
  • 默認攔截器棧

    查看全部
  • 自定義攔截器

    查看全部
  • 自定義攔截器

    查看全部
  • 攔截器工作原理

    查看全部

舉報

0/150
提交
取消
課程須知
本課程主要講解Struts2中的攔截器,小伙伴們需要對Struts2基本用法、 Action配置等相關知識有一定的基礎。
老師告訴你能學到什么?
1、攔截器概念、作用 2、Struts2內建的攔截器 3、如何自定義攔截器 4、使用攔截器實現權限控制

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!