struts1 --servlet+mvc
hibernate --JDBC
spring
擴展內容:
struts2
JMail
Weblogic
EJB
工作流jBPM
jQuery
...
struts1框架:
1 框架:
針對某一類應用提供的通用解決方案。
作用:
提供給程序員一些基礎代碼(跟業務無關、實現較複雜的代碼)
開發效率會提高-在代碼框架搭建成功之後
先了解框架的核心思想
2 struts1的核心思想
基於MVC模式,用於web層的開源框架。
3 MVC模式:
view :顯示層
作用:接受客戶端用戶的輸入的數據
顯示系統內部信息給客戶端
技術:
html 構建頁面顯示信息
javaScript 對客戶端的數據進行格式化校驗
jstl 邏輯分支語句控制
<c:forEach>
<c:if>
el 獲取數據並顯示
參數 ${param.參數名}
屬性 ${[**Scope.]屬性名}
對象的相關信息 ${pageContext.request}
ajax 使用異步通信對象,在不刷新客戶端頁面的同時,訪問服務器,並且局部更新客戶端頁面
control :控制層
作用:
****核心控制器:******
*截獲所有的請求/響應
web.xml:
*.abc ===== ControllerServlet
[/dwr/* ==== DWRServlet]
根據請求信息查找映射文件,找到其對應的真正處理類路徑
映射文件config.xml
* ==== Servlet類路徑
*調用真正的處理類
反射機制調用servlet中的服務方法
具體的web處理類
servlet:
接收客戶端輸入的數據,並封裝對象(實體模型)
調用DAO(業務模型)進行持久化處理
model :模型層
作用:實體模型
實體類----表結構
業務模型
DAO ----數據訪問對象
4 mvc的優缺點:
優點:
顯示和模型解耦和
多個顯示可以共用一個模型
系統調用流程易於管理和維護
缺點:
搭建框架導致代碼量增大
核心控制器類導致調用的效率降低
5 mvc的分類:
model 1:
jsp+javaBean
model 2:
jsp+servlet+javaBean
6 struts的實現:
view
html
javaScript
jstl
el
struts標籤 --功能擴展
control
控制器類 --ActionServlet
核心配置文件 --struts-config.xml
具體web處理類 --Action
model
沒有任何實現
7 struts編寫流程
struts-config.xml文件首先在容器啓動時,即被解析封裝爲ActionMapping對象
ActionMapping.findForward("邏輯名稱"):ActionForward;
ActionForward<===>request.getRequestDsiapcther("跳轉路徑").forward(req,resp);
頁面--跳轉----》頁面
違背了MVC的核心思想
解決:
編寫一個共用處理類Action
由Action轉發系統內部資源
struts解決:
-------------------
ForwardAction
-------------------
<action path="/addPage" type="org.apache.struts.actions.ForwardAction" parameter="/WEB-INF/page/add.jsp"></action>
客戶端頁面中參數的獲取及類型轉換
ActionForm
接受客戶端頁面form表單中的控件值
index.jsp----->ForwardAction---->add.jsp
add.jsp---/add.do--->AddForm---->AddAction
-------------------
forBean
-------------------
*FormBean的書寫規則:
1 必須繼承ActionForm
2 必須提供和頁面form表單中控件名一樣的屬性
3 類型可以自由設定
FormBean的配置方式:
<form-beans>
<form-bean name="formBean的邏輯名稱" type="formBean的具體類路徑">
</form-beans>
<action-mappings>
<action path="客戶端發出請求" type="Action的類路徑" name="formBean的邏輯名稱">
</action-mappings>
add.do--->web.xml--->ActionServlet---->struts-config.xml---><action path...
---><action name屬性 ---><form-bean name屬性 --><form-bean type屬性--><action type屬性