千里馬

          天馬行空

          servlet重點

           1,開發一個servlet大致需要的步驟:
             (1),編寫servlet源碼并編譯。
              (2),在web.xml進行相應的配置。
               (3),將包含該servlet的web應用程序部署到web容器里,并啟動web容器。
                 (4),通過瀏覽器訪問該servlet。
          2,servlet 的四個周期: 加載,初始化(init()),提供服務(service()),銷毀(detory())
          3,get的請求方式會把請求的參數追加到請求的url后面,首先在url的后面加一個?,然后使用"參數名=參數值",的形式追加參數。
            post請求方式則是把請求的參數放在請求的正文里,不能直接通過url看到。,
          4,獲取客戶端參數的兩種方式:getParament()(只有一哥 參數)和getParamentValues()(用于多值的參數)
          例子:
           String username= request.getParament("username")
          String[] hobbies=request.getParamentValues("hobby");
          5,cookie:記錄在客戶端瀏覽器的數據,它的格式是“名-值”對,一般可以通過cookie保存一些用戶的數據,如,登錄名,密碼等。
          java web容器會在用戶第一次請求的時候在瀏覽器的cookie里加入 一條名為“jsessionid”的數據,同樣web容器也有。以后的每次請求瀏覽器都會把cookie的值傳回到服務器端,所以服務器就會根據‘jsessionid’的值跟蹤一個用戶了。瀏覽器關閉,跟蹤結束。(回話的時間是有限制的)
          6,servlet轉發一個http請求分為直接轉發和間接轉發。
           間接轉發本質是兩次http請求,服務器端在響應第一次請求的時候,讓瀏覽器再向另外一個url發送,從而達到轉發的目的。
          直接轉發是瀏覽器只發出一次請求,servlet把請求轉發給servlet,Html,jsp或其他信息資源,有第二個信息資源響應該請求,在請求對象request中保存的對象對于每個信息資源都是共享的。
          web應用程序大多會有一個控制器,由控制器來控制請求應該轉發給那個信息資源,然后有信息資源處理請求,處理我完后還可能轉發給另外的信息資源返回給用戶,這個過程既是經典的MVC模式。
          7,過濾器:就是在目標資源和源頭資源之間起到過濾作用的一個東西。對于web應用程序來說,過濾器是處于服務器端的,隊請求消息和響應消息進行過濾的一中組件。
          過濾器是一種重要的設計模式,不僅引用在javaweb開發中,其他開發領域也會應用到過濾器模式,他可以在不侵入原有代碼的基礎上為他們提供一些功能。
          8,java web 應用程序的范圍模型。
          request:請求 代表了一次http請求,他的生命周期從請求開始知道請求的響應結束。中間可能會穿插多個信息資源,如過濾器,                   servlet,jsp。
          Session  會話,代表了一次會話,也可認為代表了一個用戶,一個會話里可以包含多次的請求。如果用戶長時間不發出請求,可能導致會話超時而過期,超時時長可以設置。因為它代表一個用戶,所以一般使用session保存用戶的數據,如購物車。
          application :應用  他的生命周期從web 容器啟動或部署該應用開始,一web 容器停止,或取消部署而結束。他的作用范圍最大,一般用于存放應用標題,或其他外部資源連接器等。
          9,監聽器體現了一種監聽事件模型。
            三種事件監聽:1,request事件監聽實現接口(ServltRequestListener)
                         2,session事件監聽接口(HttpSessionListener)
                         3,application事件監聽接口(ServletContextListener)
          10,forward和redirect的區別:
          forward是直接轉發,通過request調用
          redirect是間接轉發,通過response調用
          forward在服務端的內部發生,對于客戶端來說是不可見的,即使請求在服務器端的各個資源間轉發過多次,客戶端瀏覽器的地址欄的地址依然是最初的請求地址,redirect則相反,他的請求轉發實質是向客戶端發送一條請求另一個地址的結果,瀏覽器會修改地址欄的地址,再重新發一次新的請求,對于客戶端來說是可見的。
          11,
           Servlet體系結構和層次結構 

          1,Servlet體系結構       

            

                      ------請求   --->                            ------->                              ------->                       

          客戶端                              HTTP服務器                    Servlet容器                        Servlet   

                       <----- 響應  ----                            <---------                          <-------         

                         

          2,Servlet層次結構   

          Servlet是實現javax.servlet.Servlet接口的對象,大多數Servlet通過GenericServlet或HttpServlet進行擴展.   Servlet API 由兩個程序包組成  

           javax.servlet  包  

          類:     

          ServletInputStream類:從客戶端讀取二進制數據;     

          ServletOutputStream類;向客戶端發送二進制數據;     

          GenericServlet類:抽象類,定義了一個通用的,獨立于底層協議的Servlet。

             接口:    

           Servlet接口:管理Sevlet。定義實現Servlet的必須方法。一個Servlet必須實現Servlet接口或Servlet接口的擴展。     

          ServletConfig接口:Servlet初始化時,向Servlet傳遞配置信息。     

          ServletContext接口;Servlet上下文,使Servlet與其他的Servlet容器進行交互通信。    

           ServletRequest接口:向Servlet客戶端提供請求信息     

          ServletResponse接口;Servlet向客戶端提供響應信息。        

          javax.servlet.http     包

          類:     

           Cookie類      

          HttpServlet類:抽象類,繼承自GenericServlet。應用于HTTP協議的請求和響應的Servlet。    

           接口:     

           HttpSession接口:     

           HttpAttributeListener接口:會話的屬性監聽接口;     

           HttpServletRequest接口;擴展ServletRequest接口,向Servlet客戶端提供HTTP請求信息。    

           HttpServletResponse接口;擴展ServletResponse接口,Servlet向客戶端提供HTTP響應信息。   

            總體可以分為:  

           Servlet類:     實現具體協議的業務類,其目的是一個業務實現的WEB組件類;   

          Servlet接口:     該接口獨立于協議實現,其目的是為了定義服務器的組件標準;   

          GenericServlet抽象類:     該類提供了一個獨立于協議的實現,其目的是為了滿足服務器;   

          HttpServlet:     該類實現了HTTP協議,其目的是為了讓客戶程序擴展;

          posted on 2012-05-13 18:06 Mr Lee 閱讀(620) 評論(0)  編輯  收藏


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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          (hibernate)http://www.aygfsteel.com/dyllove98/archive/2012/05/12/377959.html

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 濉溪县| 佳木斯市| 蓬安县| 东台市| 安义县| 珲春市| 隆尧县| 三江| 双桥区| 凤山市| 龙南县| 连平县| 威信县| 革吉县| 图片| 垣曲县| 博野县| 通化市| 九江市| 左云县| 隆化县| 民乐县| 姚安县| 岳阳县| 十堰市| 灌南县| 襄垣县| 芒康县| 蛟河市| 沾益县| 建德市| 长宁县| 襄垣县| 辉县市| 武安市| 寿宁县| 大埔县| 长阳| 龙口市| 郴州市| 西吉县|