2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Servlet編程,背景知識,常用的Web服務器IISApache通常的動態(tài)網頁技術CGI (Common GateWay Interface)API常用的有(NSAPI,ISAPI)ASP(Active Server Page)PHP(Personal Home Page),什么是Servlet技術,Servlet是在Java2平臺下取代CGI的一種技術是一個接收請求,作出響應的網絡服務Java類,什么是 Servl

2、et?,,,請求,客戶端,,響應,Servlet 運行于服務器上,Servlet 是一個用 Java 編寫的程序,此程序在服務器上運行以處理客戶端請求,Servlet簡介,Servlet是服務器小應用程序用來完成B/S架構下,客戶端請求的響應處理平臺獨立,性能優(yōu)良,能以線程方式運行Servlet API為Servlet提供了統(tǒng)一的編程接口,HTTP Servlet 基礎知識,HttpServlet 類提供一個抽象類以創(chuàng)建 HTTP

3、 Servlet,public void doGet(HttpServletRequest req,HttpServletResponse res),doGet() 方法處理客戶端作出的 GET 請求。,public void doPost(HttpServletRequest req,HttpServletResponse res),doPost() 方法處理客戶端作出的 POST 請求。,Tomcat的安裝和運行,安裝從http:

4、//jakarta.apache.org/下載直接運行可執(zhí)行文件安裝,Tomcat的目錄結構,bin/ 二進制可執(zhí)行文件和腳本common/ Catalina本身和web應用可加載的類目錄conf/ 配置文件目錄lib/ 所有Web應用可見的類庫目錄logs/ 日志目錄server/ 服務器所需的類庫目錄webap

5、ps/ Web應用所存放的目錄work/ Tomcat的工作目錄(存放臨時文件),Tomcat配置文件,server.xml服務器的主配置文件web.xml定義所有Web應用的配置(缺省的Servlet定義和MIME類型定義)tomcat-user.xml 定義了tomcat用戶的信息,server.xml的層次結構,

6、 ,常用配置示例,加入新的Web應用在server.xml中Context位置加入更改端口號更改Connector中的port屬性,示例 3-1 HelloWorld.java,需求:編寫一個生成純文本的簡單的Servlet類。目的:了解Servlet的基本概念,在web.xml中配

7、置servlet,在web.xml中配置servlet,讓客戶端瀏覽器可以訪問 HelloWorld chap03.HelloWorld HelloWorld/hello,配置servlet-invoker,為了方便調試servlet,可以通過配置servlet-invoker的方法,使得不需要配置servlet映射即可訪問servlet程序,Servlet 的生命周期,Servlet 容

8、器創(chuàng)建 Servlet 的一個實例Servlet 的生命周期就是指創(chuàng)建 Servlet 實例之后其存在的時間以及何時消失生命周期的 3個方法為:,init(),,service(),,destroy(),Servlet 的生命周期,生命周期的各個階段為:,實例化,,Servlet 容器創(chuàng)建 Servlet 的實例,初始化,,該容器調用 init() 方法,服 務,,如果請求 Servlet,則容器調用 service() 方法,銷毀

9、實例之前調用 destroy() 方法,銷 毀,,,不可用,銷毀實例并標記為垃圾收集,簡單 Servlet 的結構,,這是一個顯示 HttpServletRequest 和 HttpServetResponse 接口一些方法的簡單 Servlet,,,需要導入的包,,用于處理 GET 請求的方法,,創(chuàng)建設置文本格式和 PrintWriter 對象的方法以將數(shù)據(jù)發(fā)送給客戶端,Servlet 的部署, clientservlet

10、 chapter2.ClientServlet clientservlet /clientservlet ,web.xml文件中配置Servlet,,,兩個名稱必須相同,,Servlet編程接口,所有Servlet編程都通過繼承 javax.servlet.http.HttpServlet 實現(xiàn)請求處理方法:(分別對應http協(xié)議的7種請求)1、doGet響應Get請求,常用2、doPo

11、st響應Post請求,常用3、doPut用于http1.1協(xié)議4、doDelete用于http1.1協(xié)議5、doHead 僅響應Get請求的頭部。6、doOptions用于http1.1協(xié)議7、doTrace用于http1.1協(xié)議實例的個數(shù):1、在非分布的情況下,通常一個Servlet在服務器中有一個實例2、如果Servlet實現(xiàn)了SingleThreadModel,則該Servle

12、t會對每一個請求產生一個響應實例,,,練習 使用doGet和doPost方法處理請求示例3-2 3-3 3-4 3-5,要求:編寫一個帶有doGet和doPost方法的Servlet目的:掌握基本的Servlet請求處理技術要點:public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, I

13、OExceptionpublic void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException,IOException,獲取Http請求頭,不同于表單數(shù)據(jù)請求頭直接由瀏覽器設置,在初始的Get/Post請求行之后立即發(fā)送可以獲得客戶端/服務器端的一些配置信息獲取請求頭很簡單,直接通過HttpServletReques

14、t的getHeader方法。頭的名稱不區(qū)分大小寫常用的頭信息:getContentTypegetMethodgetRequestURIHost,練習:獲取所有的HTTP請求頭信息,獲取所有的請求頭示例3-6 GetRequestHeader.java,獲取CGI變量,CGI變量:1.基于HTTP請求的行和頭;2.來自于套結字 3.來自于服務器的安裝參數(shù)可以通過HttpServletRequest的相關方法來訪問這些變量

15、常用的CGI變量CONTENT_TYPE—getContentType()PATH_INFO---getPathInfo()REMOTE_ADDR---getRemoteAddr()QUERY_STRING---getQueryString()SERVER_NAME---getServerName()SERVER_PORT---getServerPort(),練習:獲得CGI變量,編程,取得CGI變量示例3-7 GetCG

16、IVar.java,設置HTTP響應頭,利用servlet動態(tài)生成圖片,示例3-8 Img.java,在servlet中跳轉頁面,sendRedirect() 重新請求,清空屬性forward() 接受HttpServletRequest和HttpServletResponse這兩個類型的參數(shù),能傳遞屬性到跳轉頁面。注意兩者的區(qū)別,練習sendRedirct和forward,示例3-10 Redirect.java示例3-11 F

17、orward.java示例3-12 Test.java 獲取跳轉事request中的數(shù)據(jù),通過Http報頭解決中文問題,response.setContentType(“text/html;charset=GBK”);放置在response.getWriter()之前示例3-13 ChineseHelloWorld.java解決servlet讀取表單數(shù)據(jù)中文問題: request.setCharacterEncodin

18、g(“GBK”);,練習servlet處理表單數(shù)據(jù)中文,示例 3-14 ChineseForm.htm示例 3-15 ChineseHelloWord.java思考題:運用servlet實現(xiàn)一個登陸驗證程序,處理Cookie,Http協(xié)議的無連接性要求出現(xiàn)一種保存C/S間狀態(tài)的機制Cookie:保存到客戶端的一個文本文件,與特定客戶相關Cookie以“名-值”對的形式保存數(shù)據(jù)創(chuàng)建Cookie:new Cookie(name,

19、value)可以使用Cookie 的setXXX方法來設定一些相應的值setName(String name)/getName()setValue(String value)/getValue()setMaxAge(int age)/getMaxAge()利用HttpServletResponse的addCookie(Cookie)方法將它設置到客戶端利用HttpServletRequest的getCookies()方法來讀

20、取客戶端的所有Cookie,返回一個Cookie數(shù)組,練習:寫/讀Cookie,設置Cookie讀取Cookie示例 3-16 LoginServlet.java示例 3-17 CookieTest.java,會話跟蹤,Session在某段時間一連串客戶端與服務器端的“交易” 實質上,它是依靠Cookie來實現(xiàn)的在Jsp/Servlet中,如果瀏覽器不支持Cookie,可以通過URL重寫來實現(xiàn),就是將一些 額外數(shù)據(jù)追加到表示

21、會話的每個URL末尾,服務器在該標示符與其存儲的有關的該會話的數(shù)據(jù)之間建立關聯(lián)。如hello.jsp?jsessionid=1234可以通過程序來終止一個會話。如果客戶端在一定時間內沒有操作,服務器會自動終止會話。通過HttpSession來讀寫Session,HttpServletRequest中的會話管理方法,getRequestedSessionId():返回隨客戶端請求到來的會話ID??赡芘c當前的會話ID相同,也可能不同。

22、getSession(boolean isNew):如果會話已經存在,則返回一個HttpSession,如果不存在并且isNew為true,則會新建一個HttpSessionisRequestedSessionIdFromCookie():當前的Session ID如果是從Cookie獲得,為trueisRequestedSessionIdFromURL():當前Session ID如果是由URL獲得,為trueisRequest

23、edSessionIdValid():如果客戶端的會話ID代表的是有效會話,則返回true。否則(比如,會話過期或根本不存在),返回false,HttpSession中的常用方法,getAttributeNames()/getAttribute()getCreateTime()getId()getMaxInactiveInterval()invalidate()isNew()setAttribute()setMaxInac

24、tivateInterval(),練習:Session操作,掌握Session的用法示例 3-18 SaveInfo.java示例 3-19 GetSession.java,ServletContext接口,Servlet context:用于存儲同一個context中的其他servlet可以訪問的屬性。常用方法:getRealPath()setAttribute()/getAttribute()/removeAttribut

25、e()getInitParameter()/getInitParameterNames(),將數(shù)據(jù)保存到ServletContext中,示例 3-20 FirstServlet.java示例 3-21 UserNumber.java,讀取web.xml的參數(shù),示例 3-22 InitParamsServlet.java,編寫線程安全的servlet,對于全局變量一定要注意多線程的問題不要使用SingleThreadModel接口

溫馨提示

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

評論

0/150

提交評論