Struts1.x的深入
1.
Struts1.x是Apache軟件基金下Jakarta項目的一個子項目,目前Struts的最新版本是Struts1.4
。學習Struts,不僅是因為他占據了當今的主流市場,還因為他開源,可以學習底層代碼,還可以重用。
2.Struts中使用技術
http
CGI
Java servlet
Jsp
jsp標簽
JavaBean
Model2(JSP+Servlet+JavaBean)
3.Struts分為三層:Controller 有servlet充當
Model 有JavaBean擔任
View 有jsp擔任
4.Struts開發環境的搭建
JDK 服務器
5.Struts使用的標簽庫
下面開始今天的主體:
6.手工搭建Struts
1.新建web工程
2.添加jar包,網上下個Struts的壓縮包struts-1.3.10-all.zip,解壓后將其lib目錄下的所有jar導入當前工程的/WEB-INF/lib目錄下
3.定義視圖 login.jsp
4.定義javaBean接收表單參數,該javaBean必須繼承ActionForm
注意該javaBean中的屬性要和表單中參數一致,比如
我在表單中有:<input type="text" name="username"
value="">用戶名</input>
那我在javaBean中必須的setUsername和GetUsername方法
5.新建控制器 LoginAction ,繼承Action ,要重寫execute方法
在該方法中
LoginForm loginForm = (LoginForm) form;
String username = request.getParameter("username");
String psw = request.getParameter("psw");
return
6.配置web.xml
7.配置struts-config.xml
**************************************************************************************************************
8. Struts的啟動過程
服務器啟動的時候,加載ActionServlet,調用ActionServlet的init方法,讀取
struts-config.xml文件,在內存中(ServletContext)中已經存在
9.Struts的運行過程
客戶端請求/login.do,轉到struts的中央控制器ActionServlet,ActionServlet解析請求路徑/login
,ActionServlet解析請求路徑/login
ActionServlet在Struts-config。xml文件中查找Action節點(根據path(action的唯一標志)屬性)中path屬性的值為/login的Action節點,ActionServlet根據name屬性的值,找到form-bean標簽,讀取type屬性的值,創建該formBean的實例,把頁面的提交過來的數據封裝到FormBean的對象中
Struts1.x的深入
1.
Struts1.x是Apache軟件基金下Jakarta項目的一個子項目,目前Struts的最新版本是Struts1.4
。學習Struts,不僅是因為他占據了當今的主流市場,還因為他開源,可以學習底層代碼,還可以重用。
2.Struts中使用技術
http
CGI
Java servlet
Jsp
jsp標簽
JavaBean
Model2(JSP+Servlet+JavaBean)
3.Struts分為三層:Controller 有servlet充當
Model 有JavaBean擔任
View 有jsp擔任
4.Struts開發環境的搭建
JDK 服務器
5.Struts使用的標簽庫
下面開始今天的主體:
6.手工搭建Struts
1.新建web工程
2.添加jar包,網上下個Struts的壓縮包struts-1.3.10-all.zip,解壓后將其lib目錄下的所有jar導入當前工程的/WEB-INF/lib目錄下
3.定義視圖 login.jsp
4.定義javaBean接收表單參數,該javaBean必須繼承ActionForm
注意該javaBean中的屬性要和表單中參數一致,比如
我在表單中有:<input type="text" name="username"
value="">用戶名</input>
那我在javaBean中必須的setUsername和GetUsername方法
5.新建控制器 LoginAction ,繼承Action ,要重寫execute方法
在該方法中
LoginForm loginForm = (LoginForm) form;
String username = request.getParameter("username");
String psw = request.getParameter("psw");
return
6.配置web.xml
7.配置struts-config.xml
**************************************************************************************************************
8. Struts的啟動過程
服務器啟動的時候,加載ActionServlet,調用ActionServlet的init方法,讀取
struts-config.xml文件,在內存中(ServletContext)中已經存在
9.Struts的運行過程
客戶端請求/login.do,轉到struts的中央控制器ActionServlet,ActionServlet解析請求路徑/login
,ActionServlet解析請求路徑/login
ActionServlet在Struts-config。xml文件中查找Action節點(根據path(action的唯一標志)屬性)中path屬性的值為/login的Action節點,ActionServlet根據name屬性的值,找到form-bean標簽,讀取type屬性的值,創建該formBean的實例,把頁面的提交過來的數據封裝到FormBean的對象中
ActionServlet讀取Action標簽中的type屬性的值,實例化Action(LoginAction),
自動調用action中的execute()方法
注:ActionServlet會針對每一個<Action> 創建一個與之對應的ActionMapping
對象,在ActionMapping對象中封裝著<action>標簽的屬性信息
相信你也會有很多疑問:
* javaBean中屬性的名稱必須為什么和表單頁面中組件的name屬性的值相同?
* struts的頁面表單的數據是怎么封裝到javaBean中?
* 控制器組件為什么必須要繼承Action
* 為什么重寫execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
* execute方法的四個參數是怎么傳遞的
下篇重寫底層代碼,以理解Struts底層實現!