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


          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 144862
          • 排名 - 426

          最新評(píng)論

          閱讀排行榜

          Servlet—Controller

                 控制器的功能“

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

          2.       調(diào)用模型層的業(yè)務(wù)方法,獲取模型數(shù)據(jù)(即:業(yè)務(wù)方法返回的結(jié)果集合、boolean

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

                 Servlet:以多線程的方式響應(yīng)用戶的并發(fā)請(qǐng)求,非線程安全。

                 CGI: 通用網(wǎng)關(guān)接口,以多進(jìn)程的方式響應(yīng)用戶的并發(fā)請(qǐng)求,被servlet所取代。

          Servlet生命周期:有web容器來維護(hù)

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

                                  被動(dòng)加載:當(dāng)用戶第一次訪問servlet的時(shí)候,web容器才去加載servlet,這是默認(rèn)的加載方式。

                                 主動(dòng)加載:當(dāng)web應(yīng)用服務(wù)器啟動(dòng)的時(shí)候,由web容器主動(dòng)加載servlet,而不管用戶是否發(fā)出訪問的請(qǐng)求。

                                      <!—Servlet元素中添加下面的子元素,將servlet默認(rèn)的被動(dòng)加載改為主動(dòng)加載 -->

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

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

                      3、   服務(wù) doService()

                      4、   銷毀

                      5、   卸載

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

          Http請(qǐng)求中經(jīng)常使用的請(qǐng)求方式:

          Get請(qǐng)求:1. 在瀏覽器地址欄中直接輸入url

                          2.           超鏈接

                          3.           發(fā)送沒有指定method屬性的form表單

          Post請(qǐng)求:發(fā)送method=post的表單

          Post在發(fā)送表單數(shù)據(jù)時(shí)優(yōu)于get方式的方面:

                          1.      安全:在發(fā)送參數(shù)時(shí),從url當(dāng)中看不到參數(shù)的任何信息

                          2.      速度快:將參數(shù)封裝到數(shù)據(jù)行中,比get請(qǐng)求將參數(shù)附加到url之后快速

                          3.      數(shù)據(jù)傳遞大小無限制

          相對(duì)路徑的問題:

          如果相對(duì)路徑在Html元素中定義(form元素中的action屬性,超鏈接中的href屬性),相對(duì)路徑的 / 起始目錄為從web應(yīng)用服務(wù)器的監(jiān)聽端口號(hào)開始

          http://localhost:8080

          HttpServletRequest接口:

          request.getParameter()

          獲取用戶發(fā)出請(qǐng)求時(shí)的參數(shù)的值(獲取的是這個(gè)參數(shù)的一個(gè)值)

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

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

          Request.setAttribute(key,Object) :在請(qǐng)求域?qū)ο髍equest中綁定屬性。

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

          注:每個(gè)請(qǐng)求域都有各自的request對(duì)象,在一個(gè)請(qǐng)求域中的所有組件都可以通過共享的request對(duì)象傳值。不同的請(qǐng)求域擁有不用的request,request不能跨請(qǐng)求域傳值。請(qǐng)求域結(jié)束,request自動(dòng)失效。

          中文傳參數(shù)亂碼問題:

                  1.      對(duì)參數(shù)進(jìn)行單獨(dú)的字符編碼轉(zhuǎn)換

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

                  2.      對(duì)以post方式傳遞的參數(shù)統(tǒng)一進(jìn)行字符編碼轉(zhuǎn)化

                                      request.setCharacterEncoding("utf-8");

                  3.      采取過濾器來進(jìn)行字符編碼轉(zhuǎn)換(將系統(tǒng)中公共的行為在過濾器中統(tǒng)一實(shí)現(xiàn),避免在具體的控制器編寫大量的重復(fù)的代碼)

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 舟曲县| 龙岩市| 沛县| 河池市| 梅州市| 南平市| 宁波市| 新源县| 大港区| 永宁县| 句容市| 海丰县| 同仁县| 额尔古纳市| 合水县| 巴马| 保德县| 沧源| 阿合奇县| 木里| 巫山县| 松潘县| 泌阳县| 鄂伦春自治旗| 胶南市| 康乐县| 资溪县| 专栏| 冷水江市| 枞阳县| 读书| 五大连池市| 泰来县| 策勒县| 蒙城县| 安远县| 周口市| 潮安县| 桂东县| 梁山县| 崇左市|