




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Servlet API 中文版Javax.servlet包主要用于java web開發(fā)。基本類和接口 一、javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它規(guī)定了必須由Servlet類實現(xiàn)由servlet引擎識別和管理的方法集。 Servlet接口的基本目標是提供生命期方法init()、service()和destroy()方法。 servlet接口中的方法 void init(ServletConfit config)throws ServletException 在servlet被載入后和實施服務(wù)前由servlet引擎進
2、行?次性調(diào)用。如果init()產(chǎn)生溢出UnavailableException,則 servle退出服務(wù)。 ServletConfig getServletConfig() 返回傳遞到servlet的init()方法的ServletConfig對象 void service(ServletRequest request, ServletResponse response)throws ServletException,IOException 處理request對象中描述的請求,使用response對象返回請求結(jié)果 String getServletInfo() 返回描述servlet的一個字符
3、串 void destory() 當(dāng)servlet將要卸載時由servlet引擎調(diào)用 二、javax.servlet.GenericServlet類(協(xié)議無關(guān)版本) GenericServlet是一種與協(xié)議無關(guān)的servlet,是一種跟本不對請求提供服務(wù)的servlet,而是簡單地從init()方法啟動后臺線程并在destory()中殺死。它可以用于模擬操作系統(tǒng)的端口監(jiān)控進程。 servlet API提供了Servlet接口的直接實現(xiàn),稱為GenericServlet。此類提供除了service()方法外所有接口中方法的缺省實現(xiàn)。這意味著通過簡單地擴展GenericServlte可以編寫一個基
4、本的servlet。 除了Servlet接口外,GenericServlet也實現(xiàn)了ServletConfig接口,處理初始化參數(shù)和servlet上下文,提供對授權(quán)傳遞到init()方法中的ServletConfig對象的方法。 GenericServlet類中的方法 void destory() 編飛組成單詞“destory”的一個注冊入口 String getInitParameter(String name) 返回具有指定名稱的初始化參數(shù)值。通過凋用config.getInitParameter(name)實現(xiàn)。 Enumeration getInitParameterNames() 返
5、回此servet已編碼的所有初始化參數(shù)的?個枚舉類型值。調(diào)用config.getInitParameterNames()獲得列表。如果未提供初始化參數(shù),則返回?個空的枚舉類型值(但不是null) ServletConfig getServletConfig() 返回傳遞到init()方法的ServletConfig對象 ServletContext getServletContext() 返回在config對象中引用的ServletContext String getServletInfo() 返回空字符串 void init(ServletConfig config)throws Servl
6、etException 在一實例變量中保存config對象。編寫組成單詞“init”的注冊入口,然后調(diào)用方法init() void init()throws ServletException 可以被跳過以處理servlet初始化.在config對象被保存后init(ServletConfig config)的結(jié)尾處自動被調(diào)用.servlet作者經(jīng)常會忘記調(diào)用super.init(config) void log(String msg) 編寫注冊servlet的入口.為此調(diào)用servlet上下文的log()方法.servlet的名字被加到消息文本的開頭。 void log(String msg,
7、Throwable t) 編寫一個入口和servlet注冊的棧軌跡。此方法也是ServletContext中相應(yīng)方法的一個副本。 abstract void service(Request request,Response response)throws ServletException,IOException 由servlet引擎調(diào)用為請求對象描述的請求提供服務(wù)。這是GenericServlet中唯一的抽象方法。因此它也是唯一必須被子類所覆蓋的方法。 String getServletName() 返回在Web應(yīng)用發(fā)布描述器(web.xml)中指定的servlet的名字。 三、javax.s
8、ervlet.http.HttpServlet類(HTTP版本) 雖然servlet API允許擴展到其它協(xié)議,但最終所有的servlet均在Web環(huán)境下實施操作,只有幾種servlet直接擴展了GenericServlet。對servlet更一般的是擴展其HTTP子類HttpServlet。 HttpServlet 類通過調(diào)用指定到HTTP請求方法的方法實現(xiàn)service(),亦即對DELETE、HEAD、GET、OPTIONS、POST、PUT和 TRACE,分別調(diào)用doDelete()、doHead()、doGet()、doOptions()、doPost()、doPut()和 doTr
9、ace()方法,將請求和響應(yīng)對象置入其HTTP指定子類。 HttpServlet類中的方法 Void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP GET請求。輸入?yún)?shù)、HTTP頭標和輸入流可從request對象、response頭標和response對象的輸出流中獲得。 Void doPost(HttpServletRequest request,HttpServletResponse respons
10、e)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP POST請求。輸入?yún)?shù)、HTTP頭標和輸入流可從request對象、response頭標和response對象的輸出流中獲得。 Void doPut(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP PUT請求。本方法中請求URI指出被載入的文件位置。 Void doDelete(HttpServle
11、tRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP DELETE請求。請求URI指出資源被刪除。 Void doOptions(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP OPTIONS請求。返回一個Allow響應(yīng)頭標表明此servlet支持的HTTP方法。一
12、個servlet不需要覆蓋此方法,因為 HttpServlet方法已經(jīng)實現(xiàn)規(guī)范所需的功能。 Void doTrace(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException 由servlet引擎調(diào)用用處理一個HTTP TRACE請求。使得請求頭標被反饋成響應(yīng)關(guān)標。一個servlet不需要覆蓋此方法,因為HttpServlet方法已經(jīng)實現(xiàn)HTTP規(guī)范所需的功能。 Void service(HttpServletRequest request,HttpServletRes
13、ponse response)throws ServletException,IOException Service(Request request,Response response)調(diào)用的一個立即方法,帶有指定HTTP請求和響應(yīng)。此方法實際上將請求導(dǎo)向doGet()、doPost()等等。不應(yīng)該覆蓋此方法。 Void service(Request request,Response response)throws ServletException,IOException 將請求和響應(yīng)對象置入其指定的HTTP子類,并調(diào)用指定HTTP的service()方法。 四、javax.servlet.
14、ServletRequest類(協(xié)議無關(guān)版本) ServletRequest接口封裝了客戶端請求的細節(jié)。它與協(xié)議無關(guān),并有一個指定HTTP的子接口。 ServletRequest主要處理: 1.找到客戶端的主機名和IP地址 2.檢索請求參數(shù) 3.取得和設(shè)置屬性 4.取得輸入和輸出流 ServletRequest類中的方法 Object getAttribute(String name) 返回具有指定名字的請求屬性,如果不存在則返回null。屬性可由servlet引擎設(shè)置或使用setAttribute()顯式加入。 Enumeration getAttributeName() 返回請求中所有屬性
15、名的枚舉。如果不存在屬性,則返回一個空的枚舉。 String getCharacteEncoding() 返回請求所用的字符編碼。 Int getContentLength() 指定輸入流的長度,如果未知則返回-1。 ServletInputStream getInputStream()throws IOException 返回與請求相關(guān)的(二進制)輸入流??梢哉{(diào)用getInputStream()或getReader()方法之一。 String getParameter(String name) 返回指定輸入?yún)?shù),如果不存在,返回null。 Enumeration getParameterNa
16、me() 返回請求中所有參數(shù)名的一個可能為空的枚舉。 String getParameterValues(String name) 返回指定輸入?yún)?shù)名的取值數(shù)組,如果取值不存在則返回null。它在參數(shù)具有多個取值的情況下十分有用。 String get Protocol() 返回請求使用協(xié)議的名稱和版本。 String getScheme() 返回請求URI的子串,但不包含第一個冒號前的內(nèi)容。 String getServerName() 返回處理請求的服務(wù)器的主機名。 String getServerPort() 返回接收主機正在偵聽的端口號。 BufferedReader getReade
17、r()throws IOException 返回與請求相關(guān)輸入數(shù)據(jù)的一個字符解讀器。此方法與getInputStream()只可分別調(diào)用,不能同時使用。 String getRemoteAddr() 返回客戶端主機的數(shù)字型IP地址。 String getRemoteHost() 如果知道,返回客戶端主機名。 void setAttribute(String name,Object obj) 以指定名稱保存請求中指定對象的引用。 void removeAttribute(String name) 從請求中刪除指定屬性 Locale getLocale() 如果已知,返回客戶端的第一現(xiàn)場或者為nu
18、ll。 Enumeration getLocales() 如果已知,返回客戶端的第一現(xiàn)場的一個枚舉,否則返回服務(wù)器第一現(xiàn)場。 boolean isSecure() 如果請求使用了如HTTPS安全隧道,返回true RequestDispatcher getRequestDispatcher(String name) 返回指定源名稱的RequsetDispatcher對象。 五、javax.servlet.http.HttpServletRequest接口(HTTP版本) HttpServletRequest類主要處理: 1.讀取和寫入HTTP頭標 2.取得和設(shè)置cookies 3.取得路徑信息
19、 4.標識HTTP會話。 HttpServletRequest接口中的方法 String getAuthType() 如果servlet由一個鑒定方案所保護,如HTTP基本鑒定,則返回方案名稱。 String getContextPath() 返回指定servlet上下文(web應(yīng)用)的URL的前綴。 Cookie getCookies() 返回與請求相關(guān)cookie的一個數(shù)組。 Long getDateHeader(String name) 將輸出轉(zhuǎn)換成適合構(gòu)建Date對象的long類型取值的getHeader()的簡化版。 String getHeader(String name) 返回指
20、定的HTTP頭標指。如果其由請求給出,則名字應(yīng)為大小寫不敏感。 Enumeration getHeaderNames() 返回請求給出的所有HTTP頭標名稱的權(quán)舉值。 Enumeration getHeaders(String name) 返回請求給出的指定類型的所有HTTP頭標的名稱的枚舉值,它對具有多取值的頭標非常有用。 int getIntHeader(String name) 將輸出轉(zhuǎn)換為int取值的getHeader()的簡化版。 String getMethod() 返回HTTP請求方法(例如GET、POST等等) String getPathInfo() 返回在URL中指定的任意
21、附加路徑信息。 String getPathTranslated() 返回在URL中指定的任意附加路徑信息,被子轉(zhuǎn)換成一個實際路徑。 String getQueryString() 返回查詢字符串,即URL中?后面的部份。 String getRemoteUser() 如果用戶通過鑒定,返回遠程用戶名,否則為null。 String getRequestedSessionId() 返回客戶端的會話ID String getRequestURI() 返回URL中一部分,從“/”開始,包括上下文,但不包括任意查詢字符串。 String getServletPath() 返回請求URI上下文后的子串
22、 HttpSession getSession() 調(diào)用getSession(true)的簡化版。 HttpSession getSession(boolean create) 返回當(dāng)前HTTP會話,如果不存在,則創(chuàng)建一個新的會話,create參數(shù)為true。 Principal getPrincipal() 如果用戶通過鑒定,返回代表當(dāng)前用戶的java.security.Principal對象,否則為null。 boolean isRequestedSessionIdFromCookie() 如果請求的會話ID由一個Cookie對象提供,則返回true,否則為false。 boolean i
23、sRequestedSessionIdFromURL() 如果請求的會話ID在請求URL中解碼,返回true,否則為false boolean isRequestedSessionIdValid() 如果客戶端返回的會話ID仍然有效,則返回true。 Boolean isUserInRole(String role) 如果當(dāng)前已通過鑒定用戶與指定角色相關(guān),則返回true,如果不是或用戶未通過鑒定,則返回false。 六、javax.servlet.ServletResponse接口(協(xié)議無關(guān)版本) ServletResponse對象將一個servlet生成的結(jié)果傳到發(fā)出請求的客戶端。Servl
24、etResponse操作主要是作為輸出流及其內(nèi)容類型和長度的包容器,它由servlet引擎創(chuàng)建. ServletResponse接口中的方法 void flushBuffer()throws IOException 發(fā)送緩存到客戶端的輸出內(nèi)容。因為HTTP需要頭標在內(nèi)容前被發(fā)送,調(diào)用此方法發(fā)送狀態(tài)行和響應(yīng)頭標,以確認請求。 int getBufferSize() 返回響應(yīng)使用的緩存大小。如果緩存無效則返加0。 String getCharacterEncoding() 返回響應(yīng)使用字符解碼的名字。除非顯式設(shè)置,否則為ISO-8859-1 Locale getLocale() 返回響應(yīng)使用的現(xiàn)場
25、。除非用setLocale()修改,否則缺省為服務(wù)器現(xiàn)場。 OutputStream getOutputStream()throws IOException 返回用于將返回的二進制輸出寫入客戶端的流,此方法和getWrite()方法二者只能調(diào)用其一。 Writer getWriter()throws IOException 返回用于將返回的文本輸出寫入客戶端的一個字符寫入器,此方法和getOutputStream()二者只能調(diào)用其一。 boolean isCommitted() 如果狀態(tài)和響應(yīng)頭標已經(jīng)被發(fā)回客戶端,則返回true,在響應(yīng)被確認后發(fā)送響應(yīng)頭標毫無作用。 void reset()
26、清除輸出緩存及任何響應(yīng)頭標。如果響應(yīng)已得到確認,則引發(fā)事件IllegalStateException。 void setBufferSize(int nBytes) 設(shè)置響應(yīng)的最小緩存大小。實際緩存大小可以更大,可以通過調(diào)用getBufferSize()得到。如果輸出已被寫入,則產(chǎn)生IllegalStateException。 void setContentLength(int length) 設(shè)置內(nèi)容體的長度。 void setContentType(String type) 設(shè)置內(nèi)容類型。在HTTP servlet中即設(shè)置Content-Type頭標。 void setLocale(Loc
27、ale locale) 設(shè)置響應(yīng)使用的現(xiàn)場。在HTTP servlet中,將對Content-Type頭標取值產(chǎn)生影響。 七、javax.servlet.http.HttpServletResponse接口(HTTP版本) HttpServletResponse加入表示狀態(tài)碼、狀態(tài)信息和響應(yīng)頭標的方法,它還負責(zé)對URL中寫入一Web頁面的HTTP會話ID進行解碼。 HttpServletResponse接口中的方法 void addCookie(Cookie cookie) 將一個Set-Cookie頭標加入到響應(yīng)。 void addDateHeader(String name,long da
28、te) 使用指定日期值加入帶有指定名字(或代換所有此名字頭標)的響應(yīng)頭標的方法。 void setHeader(String name,String value) 設(shè)置具有指定名字和取值的一個響應(yīng)頭標。 void addIntHeader(String name,int value) 使用指定整型值加入帶有指定名字的響應(yīng)頭標(或代換此名字的所有頭標)。 boolean containsHeader(String name) 如果響應(yīng)已包含此名字的頭標,則返回true。 String encodeRedirectURL(String url) 如果客戶端不知道接受cookid,則向URL加入會話
29、ID。第一種形式只對在sendRedirect()中使用的URL進行調(diào)用。其他被編碼的 URLs應(yīng)被傳遞到encodeURL() String encodeURL(String url) void sendError(int status) 設(shè)置響應(yīng)狀態(tài)碼為指定值(可選的狀態(tài)信息)。HttpServleetResponse定義了一個完整的整數(shù)常量集合表示有效狀態(tài)值。 void sendError(int status,String msg) void setStatus(int status) 設(shè)置響應(yīng)狀態(tài)碼為指定指。只應(yīng)用于不產(chǎn)生錯誤的響應(yīng),而錯誤響應(yīng)使用sendError()。 八、接口
30、一個servlet上下文是servlet引擎提供用來服務(wù)于Web應(yīng)用的接口。Servlet上下文具有名字(它屬于Web應(yīng)用的名字)唯一映射到文件系統(tǒng)的一個目錄。 一個servlet可以通過ServletConfig對象的getServletContext()方法得到servlet上下文的引用,如果servlet直接或間接調(diào)用子類GenericServlet,則可以使用getServletContext()方法。 Web應(yīng)用中servlet可以使用servlet上下文得到: 1.在調(diào)用期間保存和檢索屬性的功能,并與其他servlet共享這些屬性。 2.讀取Web應(yīng)用中文件內(nèi)容和其他靜態(tài)資源的功能
31、。 3.互相發(fā)送請求的方式。 4.記錄錯誤和信息化消息的功能。 ServletContext接口中的方法 Object getAttribute(String name) 返回servlet上下文中具有指定名字的對象,或使用已指定名捆綁一個對象。從Web應(yīng)用的標準觀點看,這樣的對象是全局對象,因為它們可以被同一 servlet在另一時刻訪問。或上下文中任意其他servlet訪問。 void setAttribute(String name,Object obj) 設(shè)置servlet上下文中具有指定名字的對象。 Enumeration getAttributeNames() 返回保存在servl
32、et上下文中所有屬性名字的枚舉。 ServletContext getContext(String uripath) 返回映射到另一URL的servlet上下文。在同一服務(wù)器中URL必須是以“/”開頭的絕對路徑。 String getInitParameter(String name) 返回指定上下文范圍的初始化參數(shù)值。此方法與ServletConfig方法名稱不一樣,后者只應(yīng)用于已編碼的指定servlet。此方法應(yīng)用于上下文中所有的參數(shù)。 Enumeration getInitParameterNames() 返回(可能為空)指定上下文范圍的初始化參數(shù)值名字的枚舉值。 int getMajo
33、rVersion() 返回此上下文中支持servlet API級別的最大和最小版本號。 int getMinorVersion() String getMimeType(String fileName) 返回指定文件名的MIME類型。典型情況是基于文件擴展名,而不是文件本身的內(nèi)容(它可以不必存在)。如果MIME類型未知,可以返回null。 RequestDispatcher getNameDispatcher(String name) 返回具有指定名字或路徑的servlet或JSP的RequestDispatcher。如果不能創(chuàng)建RequestDispatch,返回null。如果指定路徑,必須心“/”開頭,并且是相對于servlet上下文的頂部。 RequestDispatcher getNameDispatcher(String path) String getRealPath(String path) 給定一個URI,返回文件系統(tǒng)中URI對應(yīng)的絕對路徑。如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚師勞動合同主題公園餐飲2篇
- 大學(xué)工作計劃500字(3篇萬能)
- 小學(xué)生犯錯后的改正保證書3篇
- 辦理暫住證授權(quán)書樣本3篇
- 熱愛學(xué)校演講稿(14篇)
- 試用期工作總結(jié)1000字以上(20篇)
- 2024年麗江市永勝縣緊密型縣域醫(yī)共體總院招聘考試真題
- 河北順德投資集團有限公司招聘筆試真題2024
- 纖維制品售后服務(wù)與投訴處理考核試卷
- 2024年廣東赤坎區(qū)選調(diào)赤坎區(qū)教師發(fā)展中心中小學(xué)教研員考試真題
- GB/T 37027-2025網(wǎng)絡(luò)安全技術(shù)網(wǎng)絡(luò)攻擊和網(wǎng)絡(luò)攻擊事件判定準則
- 2025年江蘇南通蘇北七市高三二模高考物理試卷(含答案詳解)
- 2024年藥理學(xué)考試真題回顧試題及答案
- 2025年軍隊文職(司機類)核心知識點備考題庫(含答案)
- 2025年深圳二??荚囋囶}及答案
- (一模)臨沂市2025屆高三高考第一次模擬考試生物試卷(含標準答案)
- 老年康體指導(dǎo)職業(yè)教育課件
- 微訓(xùn)練 一文多考 備考高效之詩歌《臨安春雨初霽》陸游 - 教師版
- 新疆烏魯木齊市米東區(qū)2024-2025學(xué)年九年級上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 課件:《科學(xué)社會主義概論(第二版)》第一章
- 國際關(guān)系理論知到智慧樹章節(jié)測試課后答案2024年秋外交學(xué)院
評論
0/150
提交評論