<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)

    隨筆分類

    隨筆檔案

    友情鏈接

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 任你躁在线精品免费| 在线免费观看毛片网站| 亚洲av午夜精品无码专区| 免费国产a国产片高清| 西西人体免费视频| 亚洲高清一区二区三区| 久久久久亚洲AV成人网| 在线视频免费观看爽爽爽| 特级毛片A级毛片免费播放| 久久精品国产亚洲夜色AV网站| 大学生一级特黄的免费大片视频| 国产成人无码精品久久久久免费| 亚洲成年人免费网站| 亚洲国产一区二区视频网站| 久久国产免费福利永久| 一级女性全黄久久生活片免费| 亚洲福利电影一区二区?| jjzz亚洲亚洲女人| 18勿入网站免费永久| 中文字幕在线免费视频| 亚洲精品无码久久久久久| 久久91亚洲精品中文字幕| 国产乱子影视频上线免费观看| 日本在线看片免费人成视频1000| 精品女同一区二区三区免费播放| 亚洲精品国产情侣av在线| 国产成人综合亚洲AV第一页 | 亚洲无线一二三四区| 亚洲精品无码专区2| 在线观看无码的免费网站| 免费A级毛片av无码| 国产免费牲交视频免费播放| 亚洲国产精品无码久久九九大片| 亚洲国产高清美女在线观看| 亚洲精品少妇30p| 亚洲日本一区二区一本一道| 在线A级毛片无码免费真人| 国产福利视精品永久免费 | 日韩高清在线免费观看| 美女内射毛片在线看免费人动物| XXX2高清在线观看免费视频|