struts 筆記 action namespace

Struts請求處理流程java

請求先被struts過濾器攔截下來,而後在struts中作處理,若是處理中未發現請求的地址,再發回tomcat服務器 tomcat處理tomcat


自定義action安全

給在struts.xml中 action類添加class屬性,指定處理的類,默認會調用這個類的execute方法,這個類能夠是一個普通的java類。服務器

若是不配置class,默認的用actionSupport來處理。jsp

還能夠實現action接口來定義一個action實現類,不常常用。spa

若是想運行自定義方法而不是execute方法,那麼直接能夠在action定義該方法,這個方法,的返回值是String類型,修飾字符串類型public 線程

若是返回字符串是’xxx’ ,那麼struts會在該action中尋找,resultname’xxx’,若是沒有,會有錯誤。code

action 中配置method 屬性 ,指定調用方法。xml

struts2中每次請求都會建立一個action對象,因此不存在線程安全問題。對象


DMI 動態方法調用

用於開發或者企業內部軟件使用,由於很容易就會讓人發現是用struts,因此通常外部不用。

struts.xml 配置

<constant name="struts.enable.DynamicMethodInvocation" value="true" />



通配符

<action name="*-*" class="struts.demo.DemoAction">
      <result name="{1}">/{2}.jsp</result>
</action>


這裏的*會按順序替換{1},{2},例如,請求的action user-input

{1}user {2}input 減小result的配置


NameSpace

Namespace決定了訪問路徑,默認爲」」,能夠接受全部路徑的action

Struts請求action默認帶後綴名action,能夠不寫。

Namespcce能夠寫爲」/」, 」/xxx」,」/xxx/yy」,對應的action訪問路徑爲/index.action.

Namespace通常用模塊來進行命名

Package 標籤的做用和java中的package做用一致,區分重複的狀況,package的名字與namespace的名字通常是一致的,以模塊的名稱來命名


路徑問題

Struts中,相對路徑是從action算起,因此使用絕對路徑。

JSP’/’的地址表示的是服務器根地址,不是應用根地址

絕對路徑的獲取

String  basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort + "/" + request.getContextPath() ;
相關文章
相關標籤/搜索