<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    以java平臺為基礎,專注項目管理、關注電子商務
    攬住母親的肩頭,敬父親一杯酒,對愛的女人說“我愛你”,和另外一個男人打架,不要打女人,有一個自己的孩子,年輕的時候去漂泊,有自己的一份事業.

    Struts 學習隨筆 ?

    Struts 是基于 MVC 設計模式的框架技術,現在的流行使用是 struts1.1 and struts1.2, 使用開發框架可以更好地提高開發效率。

    Struts 的工作流程

    1. ???????? 檢索和用戶請求匹配的 ActionMapping 實例,如果不存在,就返回用戶請求中路徑無效的信息。

    2. ???????? 如果 ActionForm 實例不存在,就創建一個 ActionForm 對象,把客戶提交的表單數據保存到 ActionForm 對象中。

    3. ???????? 根據配置信息決定是否需要表單驗證。如果需要驗證,就調用 ActionForm validate() 方法。

    4. ???????? 如果 ActionForm validate() 方法返回 null 或返回一個不包含 ActionMessage ActionErrors 對象,就表示表單驗證成功。如果返回一個或多個 ActionMessage ActionErrors 對象,就表示表單驗證失敗,此時 ActionServlet 將直接把請求轉發給包含用戶提交表單的 jsp 組件。在這種情況下,不會創建 Action 對象和調用 Action execute() 方法。

    5. ???????? ActionServlet 根據 ActionMapping 實例包含的映射信息決定將請求轉發給哪個 Action 。如果相應的 Action 實例不存在,就先創建這個實例,然后調用 Action execute() 方法。

    6. ???????? Action execute() 方法返回一個 ActionForward 對象 ,ActionServlet 再把客戶請求轉發給 ActionForward 對象指向的 jsp 組件 .

    7. ???????? ActionForward 對象指向的 jsp 組件生成動態網頁,返回給客戶。

    ?????? 如何用好 struts 框架技術呢?我們應該掌握如下的知識點:

    ? ???????? MVC 的兩種規范

    ? ???????? 配置文件 (struts-config.xml,web.xml)

    ? ???????? ActionForm 類及其子類。

    ? ???????? ActionForward

    ? ???????? ActionServlet

    ? ???????? Action

    ? ???????? ActionMessages

    ? ???????? 國際化的問題

    ? ???????? struts 驗證技術

    ? ???????? struts 標簽

    ? ???????? struts 擴展(略)

    ? ???????? struts hibernate 結合使用

    ?

    逐個擊破

    ?

    MVC 的兩種規范

    ?

    兩種 MVC 規范是 JSP Model1? and JSP Model2.

    假設訪問我們分這么幾部分:瀏覽器, WEB 服務器,應用服務器和數據庫,兩者不同的是 JSP Model1 WEB 服務器里面只有 JSP 頁面和 JavaBean JSP 既充當 V ,又充當 C 的角色。而 JSP Model2 WEB 服務器里有 JSP JavaBean Servlet

    配置文件 (struts-config.xml,web.xml)

    ?

    web.xml 文件。

    配置 ActionServlet(<servlet>,<servlet-mapping>)

    初始化 ActionServlet 的初始化參數 (<init-param> 也就是加載 struts-config.xml)

    配置歡迎文件 (<welcome-file-list>)

    配置錯誤處理

    <error-page>

    ?????? <error-code>404</error-code>

    ?????? <location>/common/404.jsp</location>

    </error-page>

    配置 struts 標簽庫 (<tablib>)

    ?

    struts-config.xml

    配置數據庫連接 (<data-sources>)

    配置實體 (<form-beans>)

    配置全局的異常處理 (<globel-exceptions>)

    配置全局的轉發關系 (<globel-forwards>)

    配置映射 (<action-mapping>)

    配置本地化文件 (<message-resources>) 實際是為了完成國際化。

    配置插件 (<plug-in>)( )

    ?

    ActionForm 類及其子類。

    ?

    DTO 數據傳輸對象,生命周期有兩種 request and session,ActionForm validate() reset() 方法,主要說 reset() 方法,針對于 request 級的 ActionForm 類是沒有很大含義地,因為它只會被調用一次,里面封裝的數據也只是一次使用。主要是對于 session 級的作用是很大的,因為它涉及到多次用到。

    DynaActionForm ActionForm 子類 , initialize() 方法 , 實現 DynaActionForm 的方法 :

    <form-bean? name=”loginForm”? type=”org.apache.struts.action.DynaActionForm”>

    ?????? <form-property? initial=”alex”? name=”userName”? type=”java.lang.String”/>

    </form-bean>

    兩種 ActionForm 做比較 .

    初始化: DynaActionForm 是通過實現化,然后覆蓋其父類的方法 reset() 在這個方法中

    調用 initilize() 進行初始化。

    驗證: DynaActionForm 采用動態的驗證方法,在( struts 驗證技術中會說到)

    使用: DynaActionForm 的所有屬性保存在一個 Map 類中 , 通過 get() set() 方法調用,

    ?????? ? 如: String email=(String)form.get(“email”);

    ????????????? ? form.set(“email”,”cssseek@163.com”);

    ?

    ActionForward

    ?

    ( )

    ActionServlet

    ?

    屬于 struts 控制器組件,包括: ActionServlet,RequestProcessor and Action.

    組件完成的任務:

    接收用戶請求、根據用戶請求,調用合適的模型組件來執行相應的業務邏輯、獲取業務邏輯執行結果、根據當前狀態以及業務邏輯執行結果,選擇合適的視圖組件返回給用戶。

    Struts 采用 ActionServlet RequestProcessor 組件進行集中控制,并采用 Action 組件來處理單項業務。

    ActionServlet 類在應用生命周期中只創建實例一次。

    ?

    Action

    ?

    Action 類是用戶請求和業務邏輯之間的橋梁。在 RequestProcessor 類預處理請求時,在創建了 Action 的實例后,就調用自身的 processActionPerform() 方法,該方法再調用 Action 類的 execute() 方法。

    ActionMessages

    ?

    ActionError 類是 ActionMessage 的子類, struts1.2 放棄 ActionError.

    國際化的問題

    ?

    application_zh.properties 保存一些信息。

    :error.loginFail=” 登錄失敗,請輸入正確的用戶名和密碼

    ActionMessages errors=new ActionMessages();

    Errors.add(“loginfail”,new ActionMessage(“error.loginFail”));

    關于亂碼的問題:

    1. ? 如果一些網站服務器例如 Tomcat 如果遇到中文亂碼問題,可以修改conf目錄下的server.xml
    <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
    URIENcoding 設成GBK或GB2312

    ?

    2.? 表單中或傳遞字符串:本來輸入的漢字是正常的,但是提交后再顯示出來是亂碼,因為提交的一般是 ISO8859編碼,所以顯示的時候要轉成GB2312編碼: String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
    //rs為待轉換的字符串
    然后使用S字符串的值就可以了

    ?

    3.? ?有的服務器端的語言環境如果設成簡體中文的也可以解決此類問題

    ?

    4.? ?插入數據庫中的字符是亂碼
    看看數據庫中支持的是何種編碼方式,用類似2中的方式作一下轉換即可。

    ?

    5.? 總之,用jsp開發,碰到亂碼,你得分析是讀的時候發生亂碼,還是寫的時候發生亂碼,用2中的轉換,基本就能解決問題,有些時候寫的時候做一次轉換,例如:
    String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
    //讀的時候在轉換回來
    String S=new String(rs.getString("news").getBytes("ISO8859_1"),"GB2312");
    或者把ISO8859-1和GB2312 的位置換一下,自己多試試,就能找到解決問題的辦法。

    ?

    struts 驗證技術

    ?

    前面已講在 ActionForm validate() 驗證。這里主要說在配置中驗證技術。所需文件 validation.xml? validator-rules.xml 優點:當相同的驗證邏輯時,可提高代碼的可重用性

    struts 標簽

    ?

    struts-bean.tld? struts-form.tld? struts-html.tld? struts-logic.tld? struts-nested.tld? struts-template.tld? struts-tiles.tld 七個標簽文件。

    struts HTML 標簽

    基本的標記

    struts Bean 標簽

    用于定義輸入輸出 javaBean

    struts Login 標簽

    邏輯運算、循環遍歷

    struts Nested 標簽

    定義 javaBean 嵌套關系。

    ?

    ?

    ?

    ?

    ?

    ?

    ????????????? ????????????? ????????????? ????????????? ????????????? ????????????? ????????????? ?????? 曹水生

    ????????????? ????????????? ????????????? ????????????? ????????????? ????????????? ?????? ?????? 2005 11 11 隨筆

    posted on 2006-03-22 20:29 cssseek 閱讀(566) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2006年3月>
    2627281234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    友情鏈接

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久WWW色情成人免费观看| 免费福利网站在线观看| 免费a级黄色毛片| 亚洲国产av无码精品| 亚洲heyzo专区无码综合| 亚洲日韩乱码中文无码蜜桃| 在线观看人成视频免费无遮挡| 国产成人精品免费大全| 久久免费高清视频| 青青青国产在线观看免费| 亚洲天堂福利视频| 91麻豆国产免费观看| 一二三四在线观看免费高清中文在线观看 | 国产99视频精品免费专区| 国产啪亚洲国产精品无码| 一级毛片人与动免费观看| 香蕉免费一区二区三区| 成人免费在线观看网站| 亚洲aⅴ无码专区在线观看春色| a毛片视频免费观看影院| 免费毛片在线播放| 久久久久久久亚洲Av无码| mm1313亚洲国产精品无码试看 | 亚洲av无码成人精品国产| 国产色爽女小说免费看| 无码AV动漫精品一区二区免费| 美女视频黄a视频全免费| 国产亚洲美女精品久久久久狼| 国产成人亚洲精品青草天美| 四虎成人精品永久免费AV| 凹凸精品视频分类国产品免费| 免费观看的毛片手机视频| 美女免费视频一区二区| 337p日本欧洲亚洲大胆裸体艺术| 亚洲精品成a人在线观看☆| 免费羞羞视频网站| 色噜噜亚洲男人的天堂| 亚洲AV成人潮喷综合网| 一级毛片免费观看不卡的| 亚洲欧洲无码一区二区三区| 老司机亚洲精品影视www|