<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永久无码精品网址| 区久久AAA片69亚洲| 最近中文字幕免费mv视频7| 国产香蕉免费精品视频| 2021国内精品久久久久精免费| 久久国产精品免费看| 98精品全国免费观看视频| 亚洲电影免费在线观看| 18pao国产成视频永久免费| 亚洲免费视频网址| 97在线线免费观看视频在线观看| 国产在线观看免费观看不卡| 毛片a级毛片免费观看免下载| 在线不卡免费视频| 亚洲av高清在线观看一区二区| 无码欧精品亚洲日韩一区夜夜嗨 | 女人18毛片水真多免费看| 成年男女免费视频网站| 国产精品冒白浆免费视频| 免费国产综合视频在线看| 亚洲天堂中文字幕在线| 亚洲av午夜福利精品一区| 亚洲的天堂av无码| 亚洲欧美国产精品专区久久| 美女又黄又免费的视频| 2022国内精品免费福利视频| 暖暖在线视频免费视频| 四虎国产精品免费久久| 免费一级肉体全黄毛片| 中文字幕在线亚洲精品| 久久精品国产亚洲精品2020| 亚洲熟女综合一区二区三区| 日本精品久久久久久久久免费| 免费观看一区二区三区| 国产精品免费观看| 免费国产一级特黄久久| 国产国拍亚洲精品mv在线观看| 亚洲噜噜噜噜噜影院在线播放| 曰批全过程免费视频观看免费软件| 成人片黄网站色大片免费观看cn| 91成人在线免费视频|