Servlet基本類和介面

來源:互聯網
上載者:User

基本類和介面

一、javax.servlet.Servlet介面

servlet抽象集是javax.servlet.Servlet介面,它規定了必須由Servlet類實現由servlet引擎識別和管理的方法集。
Servlet介面的基本目標是提供生命期方法init()、service()和destroy()方法。

servlet介面中的方法      
void init(ServletConfit config)throws ServletException     在servlet被載入後和實施服務前由servlet引擎進行?次性調用。如果init()產生溢出UnavailableException,則 servle退出服務。      
ServletConfig getServletConfig()     返回傳遞到servlet的init()方法的ServletConfig對象      
void service(ServletRequest request, ServletResponse response)throws ServletException,IOException     處理request對象中描述的請求,使用response對象返回請求結果      
String getServletInfo()         返回描述servlet的一個字串      
void destory()         當servlet將要卸載時由servlet引擎調用    

二、javax.servlet.GenericServlet類(協議無關版本)

GenericServlet是一種與協議無關的servlet,是一種跟本不對請求提供服務的servlet,而是簡單地從init()方法啟動後台線程並在destory()中殺死。它可以用於類比作業系統的連接埠監控進程。
servlet API提供了Servlet介面的直接實現,稱為GenericServlet。此類提供除了service()方法外所有介面中方法的預設實現。這意味著通過簡單地擴充GenericServlte可以編寫一個基本的servlet。
除了Servlet介面外,GenericServlet也實現了ServletConfig介面,處理初始化參數和servlet上下文,提供對授權傳遞到init()方法中的ServletConfig對象的方法。

GenericServlet類中的方法      
void destory()     編飛組成單詞“destory”的一個註冊入口      
String getInitParameter(String name)     返回具有指定名稱的初始化參數值。通過凋用config.getInitParameter(name)實現。      
Enumeration getInitParameterNames()     返回此serv]et已編碼的所有初始化參數的?個枚舉類型值。調用config.getInitParameterNames()獲得列表。如果未提供初始化參數,則返回?個空的枚舉類型值(但不是null)      
ServletConfig getServletConfig()     返回傳遞到init()方法的ServletConfig對象      
ServletContext getServletContext()     返回在config對象中引用的ServletContext      
String getServletInfo()     返回Null 字元串      
void init(ServletConfig config)throws ServletException     在一執行個體變數中儲存config對象。編寫組成單詞“init”的註冊入口,然後調用方法init()      
void init()throws ServletException     可以被跳過以處理servlet初始化.在config對象被儲存後init(ServletConfig config)的結尾處自動被調用.servlet作者經常會忘記調用super.init(config)       
void log(String msg)     編寫註冊servlet的入口.為此調用servlet內容相關的log()方法.servlet的名字被加到訊息文本的開頭。      
void log(String msg,Throwable t)     編寫一個入口和servlet註冊的棧軌跡。此方法也是ServletContext中相應方法的一個副本。      
abstract void service(Request request,Response response)throws ServletException,IOException     由servlet引擎調用為請求對象描述的請求提供服務。這是GenericServlet中唯一的抽象方法。因此它也是唯一必須被子類所覆蓋的方法。       
String getServletName()     返回在Web應用發布描述器(web.xml)中指定的servlet的名字。    

三、javax.servlet.http.HttpServlet類(HTTP版本)

雖然servlet API允許擴充到其它協議,但最終所有的servlet均在Web環境下實施操作,只有幾種servlet直接擴充了GenericServlet。對servlet更一般的是擴充其HTTP子類HttpServlet。
HttpServlet 類通過調用指定到HTTP要求方法的方法實現service(),亦即對DELETE、HEAD、GET、OPTIONS、POST、PUT和 TRACE,分別調用doDelete()、doHead()、doGet()、doOptions()、doPost()、doPut()和 doTrace()方法,將請求和響應對象置入其HTTP指定子類。

 

HttpServlet類中的方法      
Void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP GET請求。輸入參數、HTTP頭標和輸入資料流可從request對象、response頭標和response對象的輸出資料流中獲得。      
Void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP POST請求。輸入參數、HTTP頭標和輸入資料流可從request對象、response頭標和response對象的輸出資料流中獲得。      
Void doPut(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP PUT請求。本方法中請求URI指出被載入的檔案位置。      
Void doDelete(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP DELETE請求。請求URI指出資源被刪除。      
Void doOptions(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP OPTIONS請求。返回一個Allow回應標頭標表明此servlet支援的HTTP方法。一個servlet不需要覆蓋此方法,因為 HttpServlet方法已經實現規範所需的功能。      
Void doTrace(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     由servlet引擎調用用處理一個HTTP TRACE請求。使得要求標頭標被反饋成響應關標。一個servlet不需要覆蓋此方法,因為HttpServlet方法已經實現HTTP規範所需的功能。       
Void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException     Service(Request request,Response response)調用的一個立即方法,帶有指定HTTP請求和響應。此方法實際上將請求導向doGet()、doPost()等等。不應該覆蓋此方法。       
Void service(Request request,Response response)throws ServletException,IOException     將請求和響應對象置入其指定的HTTP子類,並調用指定HTTP的service()方法。    

四、javax.servlet.ServletRequest類(協議無關版本)

ServletRequest介面封裝了用戶端請求的細節。它與協議無關,並有一個指定HTTP的子介面。
ServletRequest主要處理:
1.找到用戶端的主機名稱和IP地址
2.檢索請求參數
3.取得和設定屬性
4.取得輸入和輸出資料流

ServletRequest類中的方法      
Object getAttribute(String name)     返回具有指定名字的請求屬性,如果不存在則返回null。屬性可由servlet引擎設定或使用setAttribute()顯式加入。      
Enumeration getAttributeName()     返回請求中所有屬性名稱的枚舉。如果不存在屬性,則返回一個空的枚舉。      
String getCharacteEncoding()     返回請求所用的字元編碼。      
Int getContentLength()     指定輸入資料流的長度,如果未知則返回-1。      
ServletInputStream getInputStream()throws IOException     返回與請求相關的(二進位)輸入資料流。可以調用getInputStream()或getReader()方法之一。      
String getParameter(String name)     返回指定輸入參數,如果不存在,返回null。      
Enumeration getParameterName()     返回請求中所有參數名的一個可能為空白的枚舉。      
String[] getParameterValues(String name)     返回指定輸入參數名的取值數組,如果取值不存在則返回null。它在參數具有多個取值的情況下十分有用。      
String get Protocol()     返回請求使用協議的名稱和版本。      
String getScheme()     返回請求URI的子串,但不包含第一個冒號前的內容。      
String getServerName()     返回處理請求的伺服器的主機名稱。      
String getServerPort()     返回接收主機正在偵聽的連接埠號碼。      
BufferedReader getReader()throws IOException     返回與請求相關輸入資料的一個字元解讀器。此方法與getInputStream()只可分別調用,不能同時使用。      
String getRemoteAddr()     返回用戶端主機的數字型IP地址。      
String getRemoteHost()     如果知道,返回用戶端主機名稱。      
void setAttribute(String name,Object obj)     以指定名稱儲存請求中指定對象的引用。      
void removeAttribute(String name)     從請求中刪除指定屬性      
Locale getLocale()     如果已知,返回用戶端的第一現場或者為null。      
Enumeration getLocales()     如果已知,返回用戶端的第一現場的一個枚舉,否則返回伺服器第一現場。      
boolean isSecure()     如果請求使用了如HTTPS安全隧道,返回true      
RequestDispatcher getRequestDispatcher(String name)     返回指定源名稱的RequsetDispatcher對象。
五、javax.servlet.http.HttpServletRequest介面(HTTP版本)

HttpServletRequest類主要處理:
1.讀取和寫入HTTP頭標
2.取得和設定cookies
3.取得路徑資訊
4.標識HTTP會話。

HttpServletRequest介面中的方法      
String getAuthType()      如果servlet由一個評鑑方案所保護,如HTTP基本評鑑,則返回方案名稱。      
String getContextPath()      返回指定servlet上下文(web應用)的URL的首碼。      
Cookie[] getCookies()      返回與請求相關cookie的一個數組。      
Long getDateHeader(String name)      將輸出轉換成適合構建Date對象的long類型取值的getHeader()的簡化版。      
String getHeader(String name)      返回指定的HTTP頭標指。如果其由請求給出,則名字應為大小寫不敏感。      
Enumeration getHeaderNames()      返回請求給出的所有HTTP頭標名稱的權舉值。      
Enumeration getHeaders(String name)      返回請求給出的指定類型的所有HTTP頭標的名稱的枚舉值,它對具有多取值的頭標非常有用。      
int getIntHeader(String name)      將輸出轉換為int取值的getHeader()的簡化版。      
String getMethod()      返回HTTP要求方法(例如GET、POST等等)      
String getPathInfo()      返回在URL中指定的任意附加路徑資訊。      
String getPathTranslated()      返回在URL中指定的任意附加路徑資訊,被子轉換成一個實際路徑。      
String getQueryString()      返回查詢字串,即URL中?後面的部份。      
String getRemoteUser()      如果使用者通過評鑑,返回遠端使用者名,否則為null。      
String getRequestedSessionId()      返回用戶端的會話ID      
String getRequestURI()      返回URL中一部分,從“/”開始,包括上下文,但不包括任意查詢字串。      
String getServletPath()      返回請求URI上下文後的子串      
HttpSession getSession()      調用getSession(true)的簡化版。      
HttpSession getSession(boolean create)      返回當前HTTP會話,如果不存在,則建立一個新的會話,create參數為true。      
Principal getPrincipal()      如果使用者通過評鑑,返回代表目前使用者的java.security.Principal對象,否則為null。      
boolean isRequestedSessionIdFromCookie()      如果請求的會話ID由一個Cookie對象提供,則返回true,否則為false。      
boolean isRequestedSessionIdFromURL()      如果請求的會話ID在請求URL中解碼,返回true,否則為false      
boolean isRequestedSessionIdValid()      如果用戶端返回的會話ID仍然有效,則返回true。      
Boolean isUserInRole(String role)      如果當前已通過評鑑使用者與指定角色相關,則返回true,如果不是或使用者未通過評鑑,則返回false。    

六、javax.servlet.ServletResponse介面(協議無關版本)

ServletResponse對象將一個servlet產生的結果傳到發出請求的用戶端。ServletResponse操作主要是作為輸出資料流及其內容類型和長度的包容器,它由servlet引擎建立.

ServletResponse介面中的方法      
void flushBuffer()throws IOException      發送緩衝到用戶端的輸出內容。因為HTTP需要頭標在內容前被發送,調用此方法發送狀態行和回應標頭標,以確認請求。      
int getBufferSize()      返迴響應使用的緩衝大小。如果快取無效判定則返加0。      
String getCharacterEncoding()      返迴響應使用字元解碼的名字。除非顯式設定,否則為ISO-8859-1      
Locale getLocale()      返迴響應使用的現場。除非用setLocale()修改,否則預設為伺服器現場。      
OutputStream getOutputStream()throws IOException      返回用於將返回的二進位輸出寫入用戶端的流,此方法和getWrite()方法二者只能調用其一。      
Writer getWriter()throws IOException      返回用於將返回的文本輸出寫入用戶端的一個字元寫入器,此方法和getOutputStream()二者只能調用其一。      
boolean isCommitted()      如果狀態和回應標頭標已經被發回用戶端,則返回true,在響應被確認後發送回應標頭標毫無作用。      
void reset()      清除輸出緩衝及任何回應標頭標。如果響應已得到確認,則引發事件IllegalStateException。      
void setBufferSize(int nBytes)      設定響應的最小緩衝大小。實際緩衝大小可以更大,可以通過調用getBufferSize()得到。如果輸出已被寫入,則產生IllegalStateException。      
void setContentLength(int length)      設定內容體的長度。      
void setContentType(String type)      設定內容類型。在HTTP servlet中即設定Content-Type頭標。      
void setLocale(Locale locale)      設定響應使用的現場。在HTTP servlet中,將對Content-Type頭標取值產生影響。    

七、javax.servlet.http.HttpServletResponse介面(HTTP版本)

HttpServletResponse加入表示狀態代碼、狀態資訊和回應標頭標的方法,它還負責對URL中寫入一Web頁面的HTTP會話ID進行解碼。

HttpServletResponse介面中的方法      
void addCookie(Cookie cookie)      將一個Set-Cookie頭標加入到響應。      
void addDateHeader(String name,long date)      使用指定日期值加入帶有指定名字(或代換所有此名字頭標)的回應標頭標的方法。      
void setHeader(String name,String value)      設定具有指定名字和取值的一個回應標頭標。      
void addIntHeader(String name,int value)      使用指定整型值加入帶有指定名字的回應標頭標(或代換此名字的所有頭標)。      
boolean containsHeader(String name)      如果響應已包含此名字的頭標,則返回true。      
String encodeRedirectURL(String url)      如果用戶端不知道接受cookid,則向URL加入會話ID。第一種形式只對在sendRedirect()中使用的URL進行調用。其他被編碼的 URLs應被傳遞到encodeURL()      
String encodeURL(String url)          
void sendError(int status)      設定響應狀態代碼為指定值(可選的狀態資訊)。HttpServleetResponse定義了一個完整的整數常量集合表示有效狀態值。      
void sendError(int status,String msg)          
void setStatus(int status)      設定響應狀態代碼為指定指。只應用於不產生錯誤的響應,而錯誤響應使用sendError()。    

八、javax.servlet.ServletContext介面

一個servlet上下文是servlet引擎提供用來服務於Web應用的介面。Servlet上下文具有名字(它屬於Web應用的名字)唯一映射到檔案系統的一個目錄。
一個servlet可以通過ServletConfig對象的getServletContext()方法得到servlet內容相關的引用,如果servlet直接或間接調用子類GenericServlet,則可以使用getServletContext()方法。
Web應用中servlet可以使用servlet上下文得到:
1.在調用期間儲存和檢索屬性的功能,並與其他servlet共用這些屬性。
2.讀取Web應用中檔案內容和其他靜態資源的功能。
3.互相發送請求的方式。
4.記錄錯誤和資訊化訊息的功能。

ServletContext介面中的方法      
Object getAttribute(String name)      返回servlet上下文中具有指定名字的對象,或使用已指定名捆綁一個對象。從Web應用的標準觀點看,這樣的對象是全域對象,因為它們可以被同一 servlet在另一時刻訪問。或上下文中任意其他servlet訪問。      
void setAttribute(String name,Object obj)      設定servlet上下文中具有指定名字的對象。      
Enumeration getAttributeNames()      返回儲存在servlet上下文中所有屬性名稱字的枚舉。      
ServletContext getContext(String uripath)      返回映射到另一URL的servlet上下文。在同一伺服器中URL必須是以“/”開頭的絕對路徑。      
String getInitParameter(String name)      返回指定上下文範圍的初始化參數值。此方法與ServletConfig方法名稱不一樣,後者只應用於已編碼的指定servlet。此方法應用於上下文中所有的參數。      
Enumeration getInitParameterNames()      返回(可能為空白)指定上下文範圍的初始化參數值名字的枚舉值。      
int getMajorVersion()      返回此上下文中支援servlet API層級的最大和最小版本號碼。      
int getMinorVersion()          
String getMimeType(String fileName)      返回指定檔案名稱的MIME類型。典型情況是基於副檔名,而不是檔案本身的內容(它可以不必存在)。如果MIME類型未知,可以返回null。      
RequestDispatcher getNameDispatcher(String name)      返回具有指定名字或路徑的servlet或JSP的RequestDispatcher。如果不能建立RequestDispatch,返回null。如果指定路徑,必須心“/”開頭,並且是相對於servlet內容相關的頂部。      
RequestDispatcher getNameDispatcher(String path)          
String getRealPath(String path)      給定一個URI,返迴文件系統中URI對應的絕對路徑。如果不能進行映射,返回null。      
URL getResource(String path)      返回相對於servlet上下文或讀取URL的輸入資料流的指定絕對路徑相對應的URL,如果資源不存在則返回null。      
InputStream getResourceAsStream(String path)          
String getServerInfo()      返順servlet引擎的名稱和版本號碼。      
void log(String message)
void log(String message,Throwable t)      將一個訊息寫入servlet註冊,如果給出Throwable參數,則包含棧軌跡。      
void removeAttribute(String name)      從servlet上下文中刪除指定屬性。    

九、javax.servlet.http.HttpSession介面

HttpSession類似於雜湊表的介面,它提供了setAttribute ()和getAttribute()方法儲存和檢索對象。HttpSession提供了一個會話ID關鍵字,一個參與會話行為的用戶端在同一會話的請求中儲存和返回它。servlet引擎尋找適當的會話對象,並使之對當前請求可用。

HttpSession介面中的方法      
Object getAttribute(String name)      將會話中一個對象儲存為指定名字,返回或刪除前面儲存的此名稱對象。      
void setAttribute(String name,Object value)          
void removeAttribute(String name)          
Enumeration getAttributeName()      返回捆綁到當前會話的所有屬性名稱的枚舉值。      
long getCreationTime()      返回表示會話建立和最後訪問日期和時間的一個長整型,該整型形式為java.util.Date()構造器中使用的形式。      
long getLastAccessedTime()          
String getId()      返回會話ID,servlet引擎設定的一個唯一關鍵字。      
ing getMaxInactiveInterval()      如果沒有與用戶端發生互動,設定和返回會話存活的最大秒數。      
void setMasInactiveInterval(int seconds)          
void invalidate()      使得會話被終止,釋放其中任意對象。      
boolean isNew()      如果用戶端仍未加入到會話,返回true。當會話首次被建立,會話ID被傳入用戶端,但用戶端仍未進行包含此會話ID的第二次請示時,返回true。

 

調出Lomboz各個菜單
  
  啟動Eclipse,然後點擊windows->Customize Perspective,在出現的對話方塊中的Shortcuts頁面中首先選中左邊面板中的Lomboz J2EE Wizards,這時右邊的面板中會出現很多選項的,同時也把它們各項前面的對鉤打上。
  
  然後在這個Shortcuts面板中改變Submenus:的值,選擇Show View,接著在出現的面板的左邊裡選中Lomboz J2EE,同時也要把它前面的方框中打上對鉤。
  
  最後是更換Customize Perspective對話方塊中的面板到Commands這一頁:在Commands這一頁中選定Lomboz Actions同時也把它們各項前面的對鉤打上。所有的設定完畢。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.