国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Struts2配置文件

jifei / 2366人閱讀

摘要:執行中的方法,默認執行方法返回結果同樣會通過一系列攔截器,然后由指定的表現形式返回,比如,或字面值配置文件利用配置文件初始化一系列的相關資源,這個底層實現技術屬于依賴注入。會通過配置文件初始化的資源包括攔截器,類及。

1.Struts2簡介

框架是一組程序的集合,包含了一系列的最佳實踐,作用是解決某個領域的問題。本質上來講,框架只是一個jar包,其本質上是對jdk的擴展。

最佳實踐:

始終保證程序的可讀性、可維護性和可擴展性

Simple is Beauty

盡可能使用面向對象的觀點進行編程

減少依賴,消除耦合

struts2是一個mvc框架,提供了Controller和View模塊,可以結合其他技術提供Model。Struts2非常容易擴展,框架提供的每個類是依賴于接口。如果有需要,非常容易添加適合自己的類和應用。

1.1.Struts2簡單運行圖

將上面的框架圖進行簡單的抽象,可得到下面簡單的運行示意流圖。

外部發送request請求

Filter Dispatcher檢查這個request,然后確定相應的Action

Interceptor(攔截器)相應的進行運用功能,例如workflow,數據驗證,文件上傳等。

執行Action中的方法,默認執行execute方法

返回結果同樣會通過一系列攔截器,然后由指定的表現形式返回,比如HTML,jsp或字面值

2.配置文件

struts利用xml配置文件初始化一系列的相關資源,這個底層實現技術屬于依賴注入。會通過xml配置文件初始化的資源包括:攔截器Interceptor,Action類及Results。

2.1 管理元素 2.1.1 Bean配置

bean元素有一個必須的屬性class,定義了某個Java class被創建或調用。
bean的功能:
1.對象注入:可以通過框架的container創建,然后注入到內部框架對象里,一般伴隨著type屬性,告訴container這個對象實現implement了某個接口。
2.值注入:擁有value被注入到自身的靜態方法中,好讓不創建對象的容器接受框架參數。對象使用值注入必須要定義靜態方法。

屬性 必需 描述
class yes bean class的名稱
type no class實現的主要的java接口
name no bean的唯一名字, 與其他bean獨立
scope no bean的范圍,必許是【default、singleton、request、Session、thread】中一個
static no 是否注入static方法,當type指定后一定為false
optional no bean是否是強制可選的

示例


 

      
       
      ... 

 
2.1.2 Constant常量配置

constant通過定義關鍵的設置,提供一個簡單的方式去修改框架或定義行為,來達到定制struts。
constant有兩個主要功能點:
1.用來重載設置,例如上傳文件的最大值,struts是否在“devMode”等。
2.指定哪一個bean去實現。
constant可以在多個文件中定義,默認的搜索順序如下:
1.struts-default.xml
2.struts-plugin.xml
3.struts.xml
4.struts.properties
5.web.xml
如果后面某個值已被定義,則前面的值會被覆蓋。

屬性 必需 描述
value yes contant的值
name yes contatn的名字
    Constant Example (struts.xml)

 
  
 
  ... 
 

在 struts.properties文件中,每一條實例都會被初始化成constant。

  Constant Example (struts.properties)
struts.devMode = true

在web.xml中,FilterDispatcher的初始化參數會被當做constant載入。

  
 
    
        struts
        org.apache.struts2.dispatcher.FilterDispatcher
        
            struts.devMode
            true
        
    
 
    ...
 
2.1.3 packages配置

packages是一種把action,result,result types,Interceptor和Interceptor stack分成一個邏輯配置單元,非常類似于對象,可以被extend,并被重寫。
Packages有一個必須的屬性name,對之后引用這個package是非常關鍵的。

  
       
            
        /empmanager/listEmployees.jsp    
                   
            employees        
          
       

2.1.4 namespace配置

namespace避免action的名字沖突,將action的配置在細分成邏輯模塊,每個都有特點的前綴。默認的namespace為“”,而root namespace為“/”。namespace的工作方式:

/a/b/c.action
先在b下搜索c.action,若b中沒有,則回退到a下搜索,若a還沒有,繼續向上回退。但回退只是單向性,不能向a、或b的兄弟目錄進行搜索。

2.1.5 include配置

為了防止struts.xml配置文件過大,可以進行拆分成多個子文件,每個都必須和struts.xml報錯相同的格式,包括DOCTYPE,然后利用include引用起來。

2.2 請求處理元素 2.2.1 Interceptor Configuration

interceptor 允許開發者自定義代碼,然后可以在action方法執行前或執行后運行。攔截器是非常強大的工具,可以用來驗證數據,屬性封裝,安全處理,log及在運行時剖析代碼使用。
interceptor是由java class實現的,所以每個interceptor都有相應的class name,為了使用方便,每個interceptor擁有一個簡單的唯一的名字,如果多個interceptor放在一起,可以使用stack。


  
  
    
    
  

多數應用可以定義默認的interceptor stack,如下:

對于每個action也可以定義自己的stack,但是默認的interceptor就無法啟用,所以一般講struts-default.xml中默認的interceptor stack添加到自定義的interceptor中。


    ...
    
2.2.2 action配置

action映像是struts框架的最基本的工作單位,本質上講,action關聯了一個標識符和一個handle class。當request匹配action name的時候,框架會使利用mapping來決定如何處理這個請求。在action mapping中,可以包含一系列exception處理,一個攔截器棧,一系列result types等,但是只有name是必須的,其他都可以在package的范圍內提供。
如果需要訪問時指定action name的后綴名,則需要在struts.xml文件中配置

    

默認的處理方法在Action接口中被定義

    //Action interface
    public interface Action {
        public String execute() throws Exception;
    }

但是實現Action接口是可選的,如果Action中沒有實現execute,框架會通過反射也尋找一個execute方法。除此之外,可以通過配置文件的method,指定Action中的方法。

 

如果既沒有execute 也沒有其他指定的方法,框架會拋出異常。

攔截器與過濾器:
1、攔截器是基于java反射機制的,而過濾器是基于函數回調的。
2、過濾器依賴于servlet容器,而攔截器不依賴于servlet容器。
3、攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用。
4、攔截器可以訪問Action上下文、值棧里的對象,而過濾器不能。
5、在Action的生命周期中,攔截器可以多次調用,而過濾器只能在容器初始化時被調用一次。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65725.html

相關文章

  • Struts2開發流程

    摘要:的開發流程在文件中定義核心攔截用戶請求。的最大作用是配置和請求之間的對應關系,并配置邏輯視圖名和物理視圖資源之間的相對關系,即返回結果和文件的物理位置的關系。實現為了使開發的更規范,提供了一個接口,定義了的處理應該實現的規范。 1.struts2的開發流程 在web.xml文件中定義核心Filter攔截用戶請求。 struts2 org.apa...

    Leo_chen 評論0 收藏0
  • Struts2【UI標簽、數據回顯、資源國際化】

    摘要:值得注意的是的值是文件的全名也就是說,如果有包,就把包名寫上并且,不需要寫上后綴標簽使用國際化的值是配置文件中配置的信息,寫上就行了登陸測試注意,已經替換成了中文了如果文章有錯的地方歡迎指正,大家互相交流。 Struts2UI標簽 Sturts2為了簡化我們的開發,也為我們提供了UI標簽...也就是顯示頁面的標簽..... 但是呢,Struts2是服務端的框架,因此使用頁面的標簽是需要...

    graf 評論0 收藏0
  • 創建一個Struts2項目maven 方式

    摘要:創建一個項目使用創建項目右鍵選擇那一項是項目組織唯一的標識符,實際對應的包的結構,是目錄里的目錄結構。一般就是填這樣子。 創建一個Struts2項目maven 使用eclipse 創建maven項目(webapp) 右鍵 new>othrer showImg(https://segmentfault.com/img/bVP83f?w=628&h=297); next showImg(h...

    2i18ns 評論0 收藏0
  • 面試題:SpringMVC和Struts2的區別

    摘要:的入口是,而是這里要指出,和是不同的。以前認為是的一種特殊,這就導致了二者的機制不同,這里就牽涉到和的區別了。開發效率和性能高于。的實現機制有以自己的機制,用的是獨立的方式。 1、Struts2是類級別的攔截, 一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上SpringMVC...

    isaced 評論0 收藏0
  • Struts2與Spring整合

    摘要:前言本博文主要講解怎么與框架整合和的整合關鍵點對象交給來創建搭建環境進入包引入文件引入相關文件相關文件支持包源碼源碼寫配置文件路徑與映射配置容器配置核心過濾器引入功能初始化的容器查看的文件文件除了要配置的分配器,還要加載的配置 前言 本博文主要講解Spring怎么與Struts2框架整合... Struts2和Spring的整合關鍵點: action對象交給Spring來創建 搭建環境...

    lvzishen 評論0 收藏0
  • SSH(Struts2+Hibernate+Spring)開發策略

    摘要:首先是應該了解框架技術的運行流程在此我給大家介紹一種常見的開發模式,這對于初學者來說應該也是比較好理解的。 很多小伙伴可能一聽到框架兩個字就會馬上搖頭,腦子里立刻閃現一個詞---拒絕,其實我也不例外,但我想告訴大家的是,當你真正掌握它時,你會發現**SSH**用起來是那么順手,因為它對于開發web應用真的很方便,下面就我個人經驗和大伙兒談談如何利用**SSH框架技術**來進行*w...

    reclay 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<