-
客戶端通過HttpServletRequest提交一個(gè)請求,這個(gè)請求通過一系列的過濾器,最終被Struts2核心控制器過濾到,核心控制器通過ActionMapper決定是否要調(diào)用某一個(gè)Action ,即用戶是否請求某個(gè)Action,Action代理,通過配置管理器加載Strusts核心配置文件,加載Struts.xml ActionProxy創(chuàng)建Action實(shí)例(攔截器),調(diào)用攔截器,再調(diào)用action,調(diào)用action中的業(yè)務(wù)處理方法進(jìn)行業(yè)務(wù)處理,同時(shí)業(yè)務(wù)返回一個(gè)結(jié)果,再次將攔截器反向執(zhí)行,通過HttpServletResponse響應(yīng)客戶端請求查看全部
-
4.定義攔截器,判斷用戶是否已經(jīng)登錄.此攔截器在跳轉(zhuǎn)的action中引用. 在攔截器的intercept(ActionInvocation arg0)方法中通過獲取session對象(三種方式其中一種),判斷session里面是否存在登錄成功的那個(gè)屬性,即loginsuccess,來判斷用戶是否登錄成功. 如果loginsuccess屬性不為空,則直接調(diào)用arg0的invoke()方法,此方法返回字符串與在執(zhí)行action方法中返回的字符串一致.(引用了該攔截器的action),直接返回這個(gè)字符串即可. 如果判斷用戶未登錄,則直接返回"login",表示用戶需要登錄.那么在此action中也要配置一個(gè)<result name="login">login.jsp</result>,當(dāng)直接訪問未登錄時(shí),便會跳轉(zhuǎn)到登錄頁面. 攔截器與Action方法里的返回值,即return,都會與struts.xml中的result結(jié)果集進(jìn)行匹配.攔截器可以在訪問Action之前,進(jìn)行一些操作. 整個(gè)項(xiàng)目結(jié)果:通過login.jsp登錄,當(dāng)?shù)卿洺晒Ρ阕詣犹D(zhuǎn)到管理頁面,否則跳轉(zhuǎn)到登錄頁面. 當(dāng)直接訪問跳轉(zhuǎn)到后臺的action時(shí),如果用戶登錄了,便會跳轉(zhuǎn)到后臺管理頁面,未登錄的話則跳轉(zhuǎn)到登錄頁面.查看全部
-
添加struts配置文件和jar包:右擊工程名----MyEclipse----Add Struts Capp...--------選擇版本-----next------再回去配置一下Struts.xml文件 下面是4個(gè)開發(fā)模式常用配置的簡介--- <!-- 開啟使用開發(fā)模式,詳細(xì)錯誤提示 --> <!-- <constant name="struts.devMode" value="true"/>--> <!-- 指定每次請求到達(dá),重新加載資源文件 --> <!-- <constant name="struts.i18n.reload" value="true"/>--> <!-- 指定每次配置文件更改后,自動重新加載 --> <!-- <constant name="struts.configuration.xml.reload" value="true"/>--> <!-- 指定XSLT Result使用樣式表緩存 --> <!-- <constant name="struts.xslt.nocache" value="true"/>-->查看全部
-
默認(rèn)攔截器棧: <!-- 為Action顯示引用攔截器后,默認(rèn)的攔截器defaultStack不再生效,需要手工引用。而且從順序角度去講,最好把默認(rèn)的攔截器寫在自定義攔截器上面 --> <interceptor-ref name="defaultStack"></interceptor-ref>查看全部
-
Struts2內(nèi)置常用的攔截器: 1.params攔截器: -負(fù)責(zé)將請求參數(shù)設(shè)置為Action屬性 2.staticParams攔截器: -將配置文件中action元素的子元素param參數(shù)設(shè)置為Action屬性 3.servletConfig攔截器: -將源于Servlet API的各種對象注入到Action,必須實(shí)現(xiàn)對應(yīng)接口 4.fileUpload攔截器: -對文件上傳提供支持,將文件和元素設(shè)置到對應(yīng)的Action屬性,實(shí)際上內(nèi)部依然使用了Commons-FileUpload組件。 5.exception攔截器: -捕獲異常,并且將異常映射到用戶自定義的錯誤頁面 6.validation攔截器: -調(diào)用驗(yàn)證框架進(jìn)行數(shù)據(jù)驗(yàn)證 更多的攔截器可在struts核心包的struts-default.xml中查看查看全部
-
新建攔截器的步驟: 1. 建立一個(gè)攔截器類繼承自AbstractInterceptor類,并實(shí)現(xiàn)intercept方法 invocation.invoke()方法調(diào)用下一個(gè)攔截器,如果已經(jīng)是最后一個(gè)攔截器,則執(zhí)行目標(biāo)action 2. 在strut的配置文件的package中注冊攔截器,注冊攔截器在action調(diào)用之前,在響應(yīng)的action配置中,通過interceptor-ref標(biāo)簽來引用攔截器查看全部
-
用會話來Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當(dāng)用戶在應(yīng)用程序的 Web 頁之間跳轉(zhuǎn)時(shí),存儲在 Session 對象中的變量將不會丟失,而是在整個(gè)用戶會話中一直存在下去。當(dāng)用戶請求來自應(yīng)用程序的 Web 頁時(shí),如果該用戶還沒有會話,則 Web 服務(wù)器將自動創(chuàng)建一個(gè) Session 對象。當(dāng)會話過期或被放棄后,服務(wù)器將終止該會話。Session 對象最常見的一個(gè)用法就是存儲用戶的首選項(xiàng)。查看全部
-
可以用action來訪問查看全部
-
WEB-INF是Java的WEB應(yīng)用的安全目錄。WEB-INF簡介 WEB-INF是Java的WEB應(yīng)用的安全目錄。所謂安全就是客戶端無法訪問,只有服務(wù)端可以訪問的目錄。查看全部
-
WEB-INF是Java的WEB應(yīng)用的安全目錄。WEB-INF簡介 WEB-INF是Java的WEB應(yīng)用的安全目錄。所謂安全就是客戶端無法訪問,只有服務(wù)端可以訪問的目錄。查看全部
-
自定義攔截器: 1.方法一:實(shí)現(xiàn)Interceptor接口 -void init():初始化攔截器所需資源 -void destroy() :釋放在init()中分配的資源 -String intercept(ActionInvocation ai)throws Exception 實(shí)現(xiàn)攔截器功能,利用ActionInvocation參數(shù)獲取Action狀態(tài),返回result字符串作為邏輯視圖。 2.方式二:繼承AbstractInterceptor類 -提供了init()和destroy() 方法的空實(shí)現(xiàn) -只需要實(shí)現(xiàn)intercept方法即可 實(shí)際開發(fā)當(dāng)中一般會去繼承AbstractInterceptor這個(gè)父類查看全部
-
添加的支持查看全部
-
打開開發(fā)模式查看全部
-
禁用動態(tài)方法的調(diào)用查看全部
-
自定義攔截器: 1.方法一:實(shí)現(xiàn)Interceptor接口 -void init():初始化攔截器所需資源 -void destroy() :釋放在init()中分配的資源 -String intercept(ActionInvocation ai)throws Exception 實(shí)現(xiàn)攔截器功能,利用ActionInvocation參數(shù)獲取Action狀態(tài),返回result字符串作為邏輯視圖。 2.方式二:繼承AbstractInterceptor類 -提供了init()和destroy() 方法的空實(shí)現(xiàn) -只需要實(shí)現(xiàn)intercept方法即可 實(shí)際開發(fā)當(dāng)中一般會去繼承AbstractInterceptor這個(gè)父類查看全部
舉報(bào)
0/150
提交
取消