Mybatis完成了對JDBC的封裝,而Struts2完成了對jsp,servlet的封裝。首先,三層架構java
Struts2的原理圖:apache
開發流程: 1.導入jar包。服務器
2.創建名爲「struts.xml」的配置文件 注:該文件必須放在src的目錄下架構
表頭:jsp
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5
<struts> <!-- package:爲了將邏輯相關的控制器進行封裝(業務上不相關的控制進行隔離) name:你本身給該包起的名字,(名字完成包和包之間的繼承) namespace:應用控制器,請求路徑的構成部分(前綴) extends:繼承其餘包中定義的功能,經過包名字繼承
action:給某個應用javabean,註冊一個請求路徑 name:應用javabean的請求路徑 class:應用控制器的徹底限定名 method:指定本次請求,所調用的應用控制器javabean中的方法名 result:指定該Action執行的結果類型(跳轉另一個action,還能夠跳轉某個視圖view(jsp)) name:指定跳轉的路徑對應的邏輯名稱 --> <package name="" namespace="/" extends="struts-default"> <action name="" class="" method=""> <result name="" type="">/index.jsp</result> <!-- result:指定該Action執行的結果類型(跳轉另一個action,還能夠跳轉某個視圖view(jsp)) name:指定跳轉的路徑對應的邏輯名稱 type:指定不一樣action之間,action和jsp之間的的跳轉方式 dispatcher(默認值,經過請求轉發的方式,跳轉某個jsp頁面) redirect:經過重定向的方式,跳轉某個jsp頁面 [zhongdian] chain: 經過請求轉發的方式跳轉到某個action(組成Action鏈) redirectAction:經過重定向的方式,跳轉某個action頁面 plainText:將視圖的源文件響應給客戶端 stream:完成由服務器向客戶端寫入數據 --> <result name="" type=""> <param name="actionName"></param> <param name="namespace">/</param> <param name="methodName"></param> </result> </action> </package> </struts>
3.創建用來接收數據的javaBean的action類(應用控制器)。ide
public String execute(){ //execute是struts默認的方法名稱 url
return "";//返回的字符串是structs.XML中action標籤中的result的name屬性名稱spa
}code
Struts2的執行順序 orm
1 發送 test/numAction.action 請求
2 進入到struts2的核心控制器(strutsPrepareAndExecuteFilter)
3 核心控制器,在內存中根據請求的url,查找對應的應用控制器(javabean)
4 對javabean進行實例化,調用相應的處理方法(默認execute()方法)
5 更具execute方法的返回值,struts2的核心控制器根據返回值(結果類型的邏輯名稱)對應的路徑完成跳轉