web程序設計復習重點_第1頁
web程序設計復習重點_第2頁
web程序設計復習重點_第3頁
web程序設計復習重點_第4頁
web程序設計復習重點_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2013版計算機二級考試WEB程序復習重點一、HTTP什么是HTTP協議、(請求響應模式、無狀態(tài))超文本傳輸(HTTP)協議(HTTP-Hypertexttnuisfeiprotocol)是分布式,協作式,超媒體系統 應用之間的通信協議。是萬維網(woHdwideweb交換信息的基礎。HTTP的處理流程:建立連接、發(fā)出請求、生成響應、關閉連接HTTP請求和響應協議的組成部分Http請求:1.請求行響應:1.狀態(tài)行2. 請求頭2.響應頭3. 空行3.空白行4. 消息體4.消息體get和post的區(qū)別1. Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。2. Post傳

2、輸的數據量大,可以達到2M,而Get方法由于受到URL長度的限制,只能傳 遞大約1024字節(jié).3. Post顧名思義,就是為了將數據傳送到服務器段,Get就是為了從服務器段取得數據.而 Get之所以也能傳送數據,只是用來設計告訴服務器,你到底需要什么樣的數據.Post的信息作 為http請求的內容,而Get是在Http頭部傳輸的。CGI是什么?特點是什么?缺陷?CGI:用網關接丨 I (ConunonGatewayliiterface)優(yōu)點可以和系統底層相互通訊。缺點就是每一個連接都啟動一個進程。很消費系統的資源。容器是什么?有什么作用?容器:web容器是一種服務程序,在服務器一個端I I就有

3、一個提供相應服務的程序,而這個程 序就是處理從客戶端發(fā)出的請求,如JAVA中的Tomcat容器,ASP的US或PWS都是這樣 的容器。一個服務器可以多個容器。作用:(就是一種所謂的中間件,用來運行java程序的。)web容器主要是用于給處于容器中的應用程序組件(servletjsp)提供一個環(huán)境,使 sender,jsp直接跟容器中的環(huán)境變量交互。這樣,我們就可以把注意力放在用servlet實現業(yè) 務邏輯上,而不必為系統底層服務容器對Servlet的支持包括:通信支持(利用容器提供的方法)生命周期管理(容器控制著sender的生死)多線程支持(容器會自動地為它接收的每個servlet請求創(chuàng)建一

4、個新的java線程)支持JSP (容器會自動把JSP翻譯成為sendetjava代碼)處理安全性(jawweb應用程序通常需要實現安全控制,限制用戶可以訪問的資源) Servlet是什么?規(guī)范/一系列接I 1和類/Web容器和Servlet程序之間通訊的基礎Servlet是一個在web服務器端或者應用服務器端運行的jaw程序,主要用于在服務器端產生動態(tài)內容Servlet規(guī)范的組成:1)Web應用程序2)Servlet 和 HTTPServlet3)過濾器4)安全5)國際化讀取客戶端發(fā)送的顯式和隱式數據、生成結果、向客戶端發(fā)送顯式數據(即文檔)和隱式 數據(HTTP響應數據)Web容器與Serv

5、let如何配合處理請求1)客戶端向Web服務器發(fā)起一個HTTP請求。2)HTTP請求被Web服務器接受,如果請求的是靜態(tài)頁面,則由Web服務器負責處理。如果請求的是JavaWeb組件(Servlet或者JSP),則移交給Web容器。Web容器可以在主機的同一個進程、不同的進程或其他的Web服務主機的進程中啟動。3)Web容器根據Servlet的配置文件確定調用的具體Seivlet類,并把request對象、response對象傳給它。4)Servlet通過request對象知道客戶端的使用者是誰,客戶的請求信息是什么和其他的一些信息。Seivlet處理完請求后把要返回的信息放入response

6、對象返回到客戶端。5)旦Seivlet完成了請求的處理,Web容器就會刷新response,把控制權返回給web服務器二、Web應用程序的組成結構項目根目錄WEE-INF-libclassesco mo vo.shppmg.po.xxxxweb.xml(所有應用程序的配置文件都統一命名)Tomcat介紹、目錄結構如何在Tomcat F手工部署一個Web應用程TomcatSeivlet/JSP6.X2.5/2.15.X2.4/2.04.X2.3/1.23.X2.2/1.1三、了解、認識 ServletAPIServletGenericServletHttpServlet 關系javax.serv

7、let.GenericServlet 實現了 Servlet 接 I 1javax.sendet.http.HttpSeivlet 繼承自 javax.seivlet.GenericSeivlet 類所以編寫 Sen-let 繼承 HttpServlet 或 GenericSeivlet 即 叭如何編寫自定義的Servlet代碼1、 追加壞境變量seivlet-api.jar,編寫自定義seivlet繼承HttpS亡rvlw 并重寫doGet方 法注成class文件待用(訪問控制符應該是public)2、在webapps目錄下找到example中的WEEINF, copy其中的web.xml3

8、在webapps目錄卜生成自己的文件夾,copyWEEINF/w亡b.xml如何部署Servlet(web.xml)、SendetUil映射路徑(注意*的使用)servlet!-servlet的名字,隨便起個名,但和下面的servlet-name名一致-sendet-namemgc/servlet-name!WEE-INF中文件路徑一 sendet-classAiivDiiectoivSeivletClassName/sendet-classJJ!一或者可以用 sendetclass:jsp-file/WEB-INF/hello.jsp/jsp-file-/seivletsendet-niap

9、pmg! -servlet的名字,隨便起個名,但和上面的servlet-name名一致-sendet-namemgc/servlet-name!-訪問映射路徑-uil-pattenVhello/url-pattern/servdet-mappmgServlet生命周期:類加載、實例化、初始化、服務、銷毀service(HttpServIetRequestreqiiest,HttpServletResponseresponse)方法的作用:根據不同的請求,進行分發(fā)工作(Http協議) init(SenTletConfigconfig)j init0方'去當容器(tomcat)幫忙調用ui

10、it(Sen4etConfigconfig)并且給傳過來一個參數config,這個方 法把參數對彖的引用指向類的成員變量this.config,并且調用類的血s.imtO方法。如果我們 在寫Seivlet類時只要重寫mit(SeivletConfigcoiifig)就口J以了,但是niitQ不就成了多余的了 嗎?實際上方法是為了防止程序員在寫Servlet類重寫init(Sen4etConfigcoiifig)時忘記寫 super.mit(SeivletConfigconfig),這樣就容易造成出現空指針異常。而這就要求我們最好不要重 寫 init(SeivletConfigcoiifig)

11、o配置Servlet初始化參數:liiit-parampaiam-nameparam-valueSendetContext 上下文是什么?和 Sen-let> SeivletConfig 的關系ServdetContext:sendetContext接I I是Servlet中最人的一個接I I,呈現了 web應用的Servlet視圖。 SeivletContext 實例定通過 getSeivletContext()方法獲得的,由于 HttpServlet 繼承 Seivlet 的關 系GeneiicServdet類和HttpServlet類同時具有該方法。Servlet. Servlet

12、Config 的關系:?四、HttpServetlResponse設置Http狀態(tài)碼:setStatus(intcode);設置Http響應頭:setHeader(headeniaiiie,value);getHeader(headernaine)getHeaders()設置響應內容類型:代 sponse.s 亡tCon 忙 ntType(text/html);-textxiiil> iinage/gif image/jpeg設置Http消息體(出現在設置響應內容之后):文本字符:PrmtWnterout=response.getWriterQ; 進 制 流:SeivletOutputS

13、tieam(extendsOutputStieam)out= response.getOutputStreamQ;設置字符編碼集(處理中文亂碼),要求出現在得到請求數據和響應內容的前面 客戶端重定向原理(302響應嗎)及特點:HttpSeivletResponsesendReduect(uii);HttpSeivetRequest得到請求行:getMethod()得到請求頭:getHeadei(headername)、getHeadersQ獲取瀏覽器信息 getHeader(User-Agent); 得到請求參數:getParameter(paiam)、getParameteis(paiain

14、) 服務器端轉發(fā):得到RequestDispatcher的方式有哪些? request.getRequestDispatcherO;senTletContext.getRequestDispatcher(/xxxx);sendetC ontext.getN amed Seivlet(serlve t-naine);forward(request,response) include(request,response)KSOforward方法是把請求的內容轉發(fā)到另外的一個servlet/jsp.include是把另一個seivlet/jsp處理過后的內容拿過來與此時seivlet的內容一同輸出.

15、轉發(fā)與客戶端重定向的區(qū)別?重定向:以前的request中存放的變量全部失效,并進入一個新的request作用域。 轉發(fā):以前的request中存放的變量不會失效,就像把兩個頁面拼到了一起。請求范圍:HttpServletRequestn ServIetContext 的范圍區(qū)別setAttnbute(Stimgkey.Objectvralue);Objectobj=getAttiibute(Stiingkey);iemoveAttribute(Stn ngkey);conteiixt-paramparam-name/param-nameparam-value/param-value/conte

16、iixt-paiamWeb應用程序狀態(tài)管理方式:隱藏字段、Cookie> HttpSession. URL 重寫為什么需要狀態(tài)管理?根本原因是由于Http協議是無狀態(tài)的造成的什么是Cookie?原理?如何使用?Cookie 原理:ession是一種保存上下文信息的機制,它是針對每一個用戶的,變量的值保存在服務器 端,通過SessionlD來區(qū)分不同的客戶,session是以Cookie或URL重寫為基礎。默認使用 Cookie來實現,系統會創(chuàng)造一個名為JSESSIONID的輸出Cookie,或稱為SessionCookie, 以區(qū)別PeisistentCookies(通常所說的Cooki

17、e).SessionCookie是存儲在瀏覽器中,并不是寫在 硬盤上的,但是把瀏覽器的Cookie禁止后,使用response對彖的encodeURL或 encodeReduectURL方法編碼URL, WEE服務器會采URL重寫的方式傳遞Sessiomd,用戶 就可以在地址欄看到jsessiomd=A09JHGHKHU68624309UTY84932之類的字符串°通常SessionCookie是不能跨窗I I使用,當用戶新開了一個瀏覽器進入相同的頁面時, 系統會賦予用戶一個新的SessioiiID,這樣信息共享的目的就達不到,此時可以把SessionlD 保存在Persistent

18、Cookie中,然后再新的窗I I中讀出來,就可以得到上一個窗I I的SessionlD 了,這樣通過SessionCookie和PersistentCookie的結合,實現了跨窗I I的會話跟蹤。Cookie和會話狀態(tài)什么是Cookie?Cookie是一小段文本信息,伴隨著用戶請求和頁面在Web服務器和瀏覽器之間傳遞。 用戶每次訪問站點時,Web應用程序都可以讀取Cookie包含的信息。Cookie的基本工作原 理如果用戶再次訪問站點上的頁面,當該用戶輸入URLwww.*.com時,瀏覽器就會在 本地硬盤上查找與該URL相關聯的Cookie3如果該Cookie存在,瀏覽器就將它與頁面請求 一

19、起發(fā)送到您的站點。Cookie有哪些用途?最根本的用途是:Cookie能夠幫助Web站點保存有關訪問者的信息。更概括地說,Cookie 是一種保持Web應用程序連續(xù)性(即執(zhí)行“狀態(tài)管理”)的方法.使Web站點記住您.什么是會話Session?當用戶訪問您的站點時,服務器會為該用戶創(chuàng)建唯一的會話,會話將一直延續(xù)到用戶訪 問結束。session的工作原理就session的實現而言,好像是這樣的:(1) 當有Session啟動時,服務器生成一個唯一值,稱為SessionlD (好像是通過取進程 ED的方式取得的)。(2) 然后,服務器開辟一塊內存,對應于該SessionlDo(3) 服務器再將該Se

20、ssionlD寫入瀏覽器的cookie(一些在網頁的源代碼中有所體現)。(4) 服務器內有一進程,監(jiān)視所有Session的活動狀況,如果有Session超時或是主動關 閉,服務器就釋放該內存塊。(5) 當瀏覽器連入US(服務器)時并請求的ASP(腳本語言)內用到Session時,IIS(服務器) 就讀瀏覽器Cookie中的SessionlD3(6) 然后,服務檢查該SessionlD所對應的內存是否有效。(7) 如果有效,就讀出內存中的值。(8) 如果無效,就建立新的Sessiono注意:在大瀏覽量的網站,Session并不保險,我們過去的網站就經常碰到存在Session中得 值不正確(可能出

21、現重復的SessionlD)。SessionlD不能從硬盤上的Cookie文件獲得,如呆想在客戶端獲知自己的SessionlD, 只能通過Javascript來讀取。會話失效的三種情況(服務器重啟/關閉、會話超時(-1永不失效)、invalidateQ)設置鍵值對 setAttiibute(key,value);Objectobj=getAttribute(key);為什么需要URL重寫?Stnngsti-HttpServ7letResponse.encodeURL(Stiinguil);uilJsessionid=sessionid對于搜索引擎而言,在主觀上對靜態(tài)頁面和動態(tài)頁面并沒有特殊的好

22、惡,只是很多動態(tài) 頁面的參數機制不利于搜索引擎收錄,而靜態(tài)頁面更容易收錄而已。此外,頁面靜態(tài)化在一 定程度上也提高了頁面訪問速度和系統性能及穩(wěn)定性一-這使得在搜索引擎優(yōu)化上面,為使 得效果更加明顯,問題簡單快速解決,大家對站點的靜態(tài)化非常的看重。URL應當是用戶友好的;URL應當是可讀的:URL應當是可預測的:URL應當是統一的;URL面向搜索引擎是友好的;五、對象作用域SendetContext > HttpSession、HttpSeivletRequestStiingvalue=application.getInitParam(key);Servlet上下文監(jiān)聽器:生命周期監(jiān)聽器(

23、SendetContextListener)、屬性改變監(jiān)聽器(Ser'letContextAttributeListeneijServlet會話監(jiān)聽器:生命周期監(jiān)聽器(HttpSessioiiListener)、屬性改變監(jiān)聽器(HttpSessioiiAttiibuteListener) 對象綁定監(jiān)聽器(HttpSessioiiBindiiigListener)Servlet請求監(jiān)聽器:生命周期監(jiān)聽器(SendetRequestListener)、屬性改變監(jiān)聽器(Ser4etRequestAttributeListeneijlistenerlistener-class/listener

24、-class/listener過濾器的基本概念如何實現過濾器:開發(fā)和配置過濾器的步驟注意:doFilter(Ser4etRequestiequest,Ser'letResponseresponse,FilteiChauifilteiChain) filterCliam.doFiltei(request.response);feM配置 過濾器:uii-pattein* .htniiuil-patternseivlet-naine過濾器的優(yōu)先級:先url-pattern再servlet-name,前后順序決定過濾順序過 濾鏈:FilteiChaincliain.doFiltei(Seivl

25、etRequestiequest,Sen4etResponseresponse)出現的位 置包裝器的使用:?六、理解JSP的基礎原理容器如何管理JSP、JSP的生命周期(七個階 |:)_jspIiMt()jspSeivice(HttpSenrletRequest,HttpSeivletResponse)jspDestroy()Servlet與JSP的相同點與不同點JSP的組成:元素與模板數據(html標簽)JSP腳本元素:聲明:!%Scriplet:%腳本表達式:=%JSP 注釋-一%!-/*/JSP指:%pageiinport=,contentT?pe=pageEncodmg=enoiPag

26、e=en-.jspisEnoiPage=ti-ue|false%iiicludefile=%靜態(tài)包含:包含另一個頁面的源代碼%taglibprefix=uri=%JSP標準動作:jsp:includepage=uilflush=true/動態(tài)包含:包含另一個頁面的輸出 jsp:fbnvardpage=ml,requestDispatcheLfdrwart(iequestjesponse);j sp :paiaiimame=keyvralue=value/七、JavaBean規(guī)范1. 公共類2. 實現序列化3. 公共的空構造方法4. 屬性私有化,setters.andgetters.jsp:us

27、eBeaiud=class=scope=page|iequest|session|applicatioii/j sp: setPropei-tyiiame=piopeny=value=/j sp: setPiopei-tyname=piopeity=param=/j sp:setPiopen yiiaine=piopeny= */j sp: getPiopeityname=pioperty=/JSP 九個內置隱式對彖request、responsesession、page、pageContext applicationx config、 out、exceptionj sp: fbnvardpa

28、ge=uilj sp:paiaiimame=kewalue=value/°sp:fbrwaidjsp:includepage=xx.jspflush=truej sp:paiaiimame=kewalue=value/jsp: includeJavaBeaii:»把計算機二級站點加入收藏夾1. 類必須是public2. 有一個不帶參數的構造方法3. 屬性必須私有化4. 每個屬性都有對應的set和get方法JSP開發(fā)模式:Model 1與Model2的特點與區(qū)別1. 傳統的JspModell模型Jsp是獨立的,自主完成所有的任務.2. 改進的JspModell模型Jsp頁面與JavaBeans共同協作完成任務Modell模式的實現比較簡單,適用于快速開發(fā)小規(guī)模項目。但從工程化的角度看,它 的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜 在一起,從而導致代碼的重用性非常低,增加了應用的擴展性和維護的難度。早期有大量ASP和JSP技術開發(fā)出來的Web應用,這些Web應用都釆用了 Modell架 構。八、JspModel21. JspMode

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論