hgc-ghc
          Good Good Study!!! Day Day Up!!!
          posts - 40,comments - 3,trackbacks - 0

          Servlet—Controller

                 控制器的功能“

          1.       獲取客戶端參數(顯式數據,隱式數據);

          2.       調用模型層的業務方法,獲取模型數據(即:業務方法返回的結果集合、boolean

          3.       根據模型數據進行流程控制(可能傳輸數據到視圖層)

                 Servlet:以多線程的方式響應用戶的并發請求,非線程安全。

                 CGI: 通用網關接口,以多進程的方式響應用戶的并發請求,被servlet所取代。

          Servlet生命周期:有web容器來維護

                      1、加載: web容器加載servlet(被動加載、主動加載)

                                  被動加載:當用戶第一次訪問servlet的時候,web容器才去加載servlet,這是默認的加載方式。

                                 主動加載:當web應用服務器啟動的時候,由web容器主動加載servlet,而不管用戶是否發出訪問的請求。

                                      <!—Servlet元素中添加下面的子元素,將servlet默認的被動加載改為主動加載 -->

                                              <load-on-startup>0</load-on-startup>

                      2、   初始化 :容器在加載servlet后,調用init()方法,完成初始參數的設置。

                      3、   服務 doService()

                      4、   銷毀

                      5、   卸載

          注:init()初始化方法和destroy()銷毀方法在servlet生命周期中只能調用一次。

          Http請求中經常使用的請求方式:

          Get請求:1. 在瀏覽器地址欄中直接輸入url

                          2.           超鏈接

                          3.           發送沒有指定method屬性的form表單

          Post請求:發送method=post的表單

          Post在發送表單數據時優于get方式的方面:

                          1.      安全:在發送參數時,從url當中看不到參數的任何信息

                          2.      速度快:將參數封裝到數據行中,比get請求將參數附加到url之后快速

                          3.      數據傳遞大小無限制

          相對路徑的問題:

          如果相對路徑在Html元素中定義(form元素中的action屬性,超鏈接中的href屬性),相對路徑的 / 起始目錄為從web應用服務器的監聽端口號開始

          http://localhost:8080

          HttpServletRequest接口:

          request.getParameter()

          獲取用戶發出請求時的參數的值(獲取的是這個參數的一個值)

          如果request.getParameter()方法,獲取一個不存在的參數值,返回為null

          如果獲取的參數沒有提供值,返回“”空字符串

          Request.setAttribute(key,Object) :在請求域對象request中綁定屬性。

          Request.getAttribute(key):獲取屬性。

          注:每個請求域都有各自的request對象,在一個請求域中的所有組件都可以通過共享的request對象傳值。不同的請求域擁有不用的request,request不能跨請求域傳值。請求域結束,request自動失效。

          中文傳參數亂碼問題:

                  1.      對參數進行單獨的字符編碼轉換

                                      String zh_name = new String(name.getBytes("iso-8859-1"),"utf-8");

                  2.      對以post方式傳遞的參數統一進行字符編碼轉化

                                      request.setCharacterEncoding("utf-8");

                  3.      采取過濾器來進行字符編碼轉換(將系統中公共的行為在過濾器中統一實現,避免在具體的控制器編寫大量的重復的代碼)

          posted on 2012-10-26 09:05 宏才 閱讀(311) 評論(0)  編輯  收藏 所屬分類: servlet

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


          網站導航:
           
          主站蜘蛛池模板: 临沭县| 格尔木市| 丰县| 乌兰县| 乌拉特后旗| 小金县| 磴口县| 五大连池市| 正蓝旗| 通江县| 衢州市| 普宁市| 南康市| 沐川县| 阿巴嘎旗| 日照市| 南川市| 鄂尔多斯市| 陆川县| 徐闻县| 桂林市| 文昌市| 大冶市| 泰顺县| 文安县| 墨竹工卡县| 焦作市| 大石桥市| 聂拉木县| 镇平县| 丹凤县| 普定县| 若羌县| 宜州市| 道真| 上饶县| 东兴市| 和平区| 郸城县| 工布江达县| 潢川县|