學習Java九大內建對象_java

來源:互聯網
上載者:User

本文執行個體為大家介紹了Java九大內建對象,供大家參考,具體內容如下
1、Request對象
該對象封裝了使用者提交的資訊,通過調用該對象相應的方法可以擷取封裝的資訊,即使用該對象可以擷取使用者提交的資訊。
當Request對象擷取客戶提交的漢字字元時,會出現亂碼問題,必須進行特殊處理。首先,將擷取的
字串用ISO-8859-1進行編碼,並將編碼存發島一個位元組數組中,然後再將這個數組轉化為字串對象
即可。如下:

String textContent=request.getParameter("boy");byte b[]=textContent.getBytes("ISO-8859-1");textContent=new String(b);

Request常用的方法:

1.01 getParameter(String strTextName) 擷取表單提交的資訊。 String strName=request.getParameter("name");  1.02 getProtocol() 擷取客戶使用的協議。String strProtocol=request.getProtocol(); 1.03 getServletPath() 擷取客戶提交資訊的頁面。String strServlet=request.getServletPath(); 1.04 getMethod() 擷取客戶提交資訊的方式,get|post。String strMethod = request.getMethod(); 1.05 getHeade() 擷取HTTP標頭檔中的accept、accept-encoding和Host的值。String strHeader = request.getHeader("accept"); 1.06 getRermoteAddr() 擷取客戶的IP地址。String strIP = request.getRemoteAddr(); 1.07 getRemoteHost() 擷取客戶機的名稱。String clientName = request.getRemoteHost(); 1.08 getServerName() 擷取伺服器名稱。String serverName = request.getServerName(); 1.09 getServerPort() 擷取伺服器的連接埠號碼。int serverPort = request.getServerPort(); 1.10 getParameterNames() 擷取用戶端提交的所有參數的名字。Enumeration enum = request.getParameterNames();while(enum.hasMoreElements()){ String s=(String)enum.nextElement();  out.println(s);}

2、Response對象
對客戶的請求做出動態響應,向用戶端發送資料。
2.1 動態響應contentType屬性
當一個使用者訪問一個JSP頁面時,如果該頁面用page指令設定頁面的contentType屬性時text/html,那麼JSP引擎將按照這個屬性值做出反應。如果要動態改變這換個屬性值來響應客戶,就需要使用Response對象的setContentType(String s)方法來改變contentType的屬性值。
格式:response.setContentType(String s);
參數s可取text/html,application/x-msexcel,application/msword等。
2.2 Response重新導向
在某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面,可以使用Response的sendRedirect(URL)方法實現客戶的重新導向。例如:
response.sendRedirect(“index.jsp”);

3、Session對象
(1)什麼是Session對象
Session對象是一個JSP內建對象,它在第一個JSP頁面被裝載時自動建立,完成會話期管理。從一個客戶開啟瀏覽器並串連到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間切換,伺服器應當通過某種辦法知道這是一個客戶,就需要Session對象。
(2)Session對象的ID
當一個客戶首次訪問伺服器上的一個JSP頁面時,JSP引擎產生一個Session對象,同時分配一個String類型的ID號,JSP引擎同時將這換個ID號發送到用戶端,存放在Cookie中,這樣Session對象,直到客戶關閉瀏覽器後,伺服器端該客戶的Session對象才取消,並且和客戶的會話對應關係消失。當客戶重新開啟瀏覽器再串連到該伺服器時,伺服器為該客戶再建立一個新的Session對象。
(3)Session對象的常用方法
● public String getId():擷取Session對象編號。
● public void setAttribute(String key,Object obj):將參數Object指定的對象obj添加到Session對象中,並為添加的對象指定一個索引關鍵字。
● public Object getAttribute(String key):擷取Session對象中含有關鍵字的對象。
● public Boolean isNew():判斷是否是一個新的客戶。

4、Application對象
(1)什麼時Application對象

伺服器啟動後就產生了這個Application對象,當客戶再所訪問的網站的各個頁面之間瀏覽時,這個Application對象都是同一個,直到伺服器關閉。但是與Session對象不同的時,所有客戶的Application對象都是同一個,即所有客戶共用這個內建的Application對象。
(2)Application對象的常用方法
● setAttribute(String key,Object obj):將參數Object指定的對象obj添加到Application對象中,並為添加的對象指定一個索引關鍵字。
● getAttribute(String key):擷取Application對象中含有關鍵字的對象。

5、Out對象
Out對象時一個輸出資料流,用來向用戶端輸出資料。Out對象用於各種資料的輸出。其常用方法如下。
● out.print():輸出各種類型資料。
● out.newLine():輸出一個分行符號。
● out.close():關閉流。

6、Cookie對象
(1)什麼是Cookie
Cookie是Web伺服器儲存在使用者硬碟上的一段文本。Cookie允許一個Web網站在使用者電腦上儲存資訊並且隨後再取回它。
舉例來說,一個Web網站可能會為每一個訪問者產生一個唯一的ID,然後以Cookie檔案的形式儲存在每個使用者的機器上。
如果使用者使用IE瀏覽器訪問Web,使用者就會看到所有儲存在自己硬碟上的Cookie。它們最常存放的地方是:C:\Windows\Cookies。Cookie是以“關鍵字key=值value”的格式來儲存記錄的。
(2)建立一個Cookie對象
調用Cookie對象的建構函式就可以建立Cookie對象。Cookie對象的建構函式有兩個字串參數:Cookie名字和Cookie值。
例如:Cookie c = new Cookie(“username”,”john”);
(3)將Cookie對象傳送到用戶端
在JSP中,如果要將封裝好的Cookie對象傳送到用戶端,可使用Response對象的addCookie()方法。
例如:response.addCookie(c)。
(4)讀取儲存到用戶端的Cookie
使用Request對象的getCookie()方法,執行時將所有用戶端傳來的Cookie對象以數組的形式排列,如果要取出符合需要的Cookie對象,就需要迴圈比較數組內每個對象的關鍵字。
例如:

Cookie[] c = request.getCookies(); if(c != null) for(int i = 0;i < c.length;i++){ if(“username”.equals(c.getName())) out.println(c.getValue()); } 

(5)設定Cookie對象的有效時間
調用Cookie對象的setMaxAge()方法便可以設定Cookie對象的有效時間,
例如:Cookie c = new Cookie(“username”,”john”);
c.setMaxAge(3600);
(6)Cookie應用
Cookie對象的典型應用時用來統計網站的訪問人數。由於Proxy 伺服器、緩衝等的使用,唯一能協助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯一ID。使用Cookie,網站可以完成一下工作。
● 測定多少人訪問過。
● 測定訪問者有多少是新使用者(即第一次來訪),多少是老使用者。
● 測定一個使用者多久訪問一次網站
當一個使用者第一次訪問時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給使用者。使用者再次來訪時,網站把該使用者ID對應的計數器加1,得到使用者的來訪次數。

7、Config對象【不常用】
設定物件
頁面對象。
config內建對象是ServletConfig類的一個執行個體,用於JSP引擎在Servlet初始化時,通過config向它(Servlet)傳遞資訊。這種資訊可以是屬性名稱/值匹配的參數,也可以是通過ServletContext對象傳遞的伺服器的有關資訊。一般在JSP開發中行少用到config內建對象,只有在編寫Servlet時若需要重載Servlet的init()方法時才會用到。

config對象常用方法

    getServletContext():返回 一個含有伺服器相關資訊的ServletContext對象。
    getIntParameter(String name):返回初始化參數的值。
    getIntParameterNames():返回包含了Servlet初始化所需要的所有參數,傳回型別是枚舉型。

PageContext對象 【不常用】

pageContext內建對象是一個比較特殊的對象,它相當於頁面中所有其他對象功能的最大整合者,即使用它可以訪問到本頁面中所有其他的對象,例如前面已經描述的request、response、out和page對象等。由於在JSP中request和response等對象本來就可以通過直接調用方法使用,所以pageContext對象在實際JSP開發中很少使用到。

pageContext對象常用方法

 getRequest():返回當前頁面中的request對象。   getResponse():返回當前頁面中的response對象。   getSession():返回當前頁面中的session對象。   getServletContext():返回當前頁面中的application對象。   getPage():返回當前頁面中的page對象。   getOut():返回當前頁面中的out對象。   getException():返回當前頁面中的exception對象。   getServletConfig():返回當前頁面中的config對象。   setAttribute(String name):給指定的屬性名稱設定屬性值。   getAttribute(String naem):根據屬性名稱找到相應的屬性值。   setAttribute(String name, Object obj, int scope):在給定的範圍內設定相應的屬性值。   getAttribute(String name, int scope):在給的範圍內擷取相應的屬性值。   findAttribute(String name):尋找一個屬性並返回,如果尋找不到則返回null。   removeAttribute(String name):通過屬性名稱刪除掉某個屬性。   removeAttribute(String name, int scope):在指定的某個範圍裡刪除某個屬性。   getAttributeScope(String name scope):返回某屬性的範圍。   getAttributeNamesInScope(int scope):返回指定範圍內的所有屬性名稱的枚舉。   release():釋放pageContext佔據的所有資料。   forward(String relativeURLpath):使用當前頁面重導到另一個頁面。   include(String relativeURLpath):使用當前位置包含的另一個頁面。

8、Page對象【不常用】

page對象有點類似於Java編程中的this指標,就是指當前JSP頁面本身。page是java.lang.Object類的對象。page對象在實際開發過程中並不經常使用。
page對象常用方法
getClass():返回當時Object的類。
hashCode():返回此時Object的雜湊碼。
toString():將此時的Object類轉換成字串。
equals(Object ob):比較此對象是否與指定的對象相等。
copy(Object ob):將此對象複製到指定的對象中。
clone():對此對象進行複製。

9、Exception對象

在處理異常的網頁中可以直接存取exception隱式對象。
頁面內容物件
Jsp引入了一個名位PageContext的類,通過它可以訪問頁面的許多屬性。
PageContext類擁有getRequest,getResponse,getOut,getSession等方法。
pageContext變數儲存與當前頁面相關聯的PageContext對象的值。
補:
如果方法需要訪問多個與頁面相關的對象,
傳遞pageContext要比傳遞request,response,out等的獨立引用更容易。(雖然兩種方式都能達到同樣的目的)

以上就是本文的全部內容,希望對大家的學習有所協助

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.