struts用了也一年了,基本的東西都會用,不過因為是在工作中邊學邊用,難免很多知識點都不系統,慚愧呀。這幾天找本書梳理一下。---MVC---
V:多種視圖共享一個后臺模型
M:實現與界面獨立,良好的封裝
C:更好的維護程序流程
model1:JSP(V、C)+JavaBean(M)
只適用于小型程序,JSP的雙重角色使HTML和Java混合,很難維護。
model2:JSP(V)+Servlet(C)+JavaBean(M)
Struts也是model2(用ActionServlet代替Servlet)。Struts的所有功能都是建立在已有的Java Web組件上,如Servlet,JSP,JavaBean,它只是利用一種方式將這些元素組織了起來,使它們協同工作。
---點滴---
在Struts應用程序中,所有的用戶請求都由ActionServlet接收,然后根據struts-config.xml查找相應的子控制器。Web容器加載Struts應用程序后,struts-config.xml被首先讀入內存成為一個ActionMapping對象。
基本流程:HttpRequest-->XxxForm-->validate()=true-->XxxAction-->execute()-->(return) ActionForward-->JSP
這其中的配置信息都存在于struts-config中
國際化:<bean:message key=""/> + ApplicationResources.properties
---web.xml---
<display-name> ApplicationContext name
<listener> 配置事件監聽器
<session-config> --> <session-timeout> Session過期時間
<welcome-file-list> 根URL的默認頁面:先找index文件,找不到再查找該list
<error-page> 制定在返回特定HTTP狀態碼,或者特定類型的異常被拋出時顯示的頁面。
<taglib> 對標記庫描述符文件(Tag Library Descriptor File)指定別名
---struts-config.xml---
<data-source> 定義數據源
<global-exceptions> 定義全局異常
<global-forwards> 定義全局轉發(名字相同時,局部轉發優先)
<controller> 定義控制配置類,如TilesRequestProcessor
<message-resources> 指定消息資源文件,配合<bean:message key="" bundle="">使用
<plug-in> 插件
---Action們---
Action:線程安全的,所以都是singlon的。不應該在Action類中使用域變量保存用戶特定信息,如狀態信息(可以將一些與特定請求無關的變量定義為域變量,如Log變量)
ActionForward:可以是靜態的從config文件中讀,如mapping.findForward("success");也可以是動態的指定,如new ActionForward("success","/aaa/bbb.jsp",true)
預定義的Action
ForwardAction:類似<jsp:forward>
IncludeAction:類似<jsp:include>
以上兩個Action,使Struts遵循MVC,避免直接調用JSP,可以充分利用控制器的預處理功能。
DispatchAction:以資源為中心,減少Action的數量。
通??稍O置parameter="method",則調用的url為http://xxx/yyy?method=add
也可以設置parameter="add, update",則調用的url為http://xxx/yyy?add=true
LookupDispatchAction:DispatchAction的子類,通過反查資源綁定,找到類中對應的方法。
SwitchAction:Struts支持多應用程序模塊(即multi-module),SwitchAction用來執行在不同應用程序模塊間的切換操作。
posted on 2007-04-08 23:47
Jcat 閱讀(432)
評論(1) 編輯 收藏 所屬分類:
Java