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對象的典型應用時用來統計網站的訪問人數。由于代理服務器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯一ID。使用Cookie,網站可以完成一下工作。
??? ● 測定多少人訪問過。
??? ● 測定訪問者有多少是新用戶(即第一次來訪),多少是老用戶。
??? ● 測定一個用戶多久訪問一次網站
??? 當一個用戶第一次訪問時,網站在數據庫中建立一個新的ID,并把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數。
7、Config對象
??? 配置對象
??? 頁面對象。
?? PageContext對象

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

轉載于:https://www.cnblogs.com/chenxiaoxian/p/10427114.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249584.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249584.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ORACLE導出導入意外終止導致 ORACLE initialization or shutdown in progress 問題解決

由于意外情況導致 ORACLE initialization or shutdown in progress 個人理解為主要是歸檔日志出現問題&#xff0c; 首先cmd 1.sqlplus /nolog 進入sqlplus 2.connect /as sysdba 連接dba 3.shutdown normal 卸載數據庫 4.startup mount;重啟例程 5.alter database open;開…

Spring中資源的加載ResourceLoader

Spring中資源的加載是定義在ResourceLoader接口中的&#xff0c;它跟前面提到的抽象資源的關系如下&#xff1a; ResourceLoader的源碼 public interface ResourceLoader { /** Pseudo URL prefix for loading from the class path: "classpath:" */ String CLAS…

Codeforces Round #540 (Div. 3)(部分題解)

鏈接:http://codeforces.com/contest/1118 來源:Codeforces 文章目錄A. Water BuyingB. Tanya and Candies(前綴和)D1. Coffee and Coursework (Easy version)(貪心)D2. Coffee and Coursework (Hard Version)(二分)A. Water Buying 題意:用最小的花費買到剛好合適的東西.我們可…

集合一些方法陷阱

一&#xff1a;asList 數組轉ArrayList陷阱&#xff1a; asList() 源碼&#xff1a;public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } private final E[] a; ArrayList(E[] array) { if (arraynull) throw new NullPointerExcept…

java項目中的classpath

在java項目中&#xff0c;你一定碰到過classpath&#xff0c;通常情況下&#xff0c;我們是用它來指定配置/資源文件的路徑。在剛開始學習的時候&#xff0c;自己也糊里糊涂&#xff0c;但是現在&#xff0c;是時候弄清楚它到底是指什么了。 顧名思義&#xff0c;classpath就是…

C++命名空間(namespace)

在c中&#xff0c;名稱&#xff08;name&#xff09;可以是符號常量、變量、函數、結構、枚舉、類和對象等等。工程越大&#xff0c;名稱互相沖突性的可能性越大。另外使用多個廠商的類庫時&#xff0c;也可能導致名稱沖突。為了避免&#xff0c;在大規模程序的設計中&#xff…

P1556 幸福的路

題意&#xff1a;平面內有N頭牛$N\le 10$john從&#xff08;0,0&#xff09;出發&#xff0c;最后回到(0,0) 只有走到牛那里john才可以改變方向&#xff0c;否則沿著直線走 問john經過每一頭牛并且在每一頭牛出恰好改變方向一次的方案&#xff08;牛可以經過多次&#xff0c;但…

Class.getResource和ClassLoader.getResource

一案例驅動 二源碼分析 三類加載器ClassLoader 四總結 五參考 一案例驅動 最近加載文件的時候遇到了一個問題&#xff0c;很有意思&#xff01; 具體看下面案例代碼 public class TestClassLoader {public static void main(String[] args) {System.out.println(TestClassLoad…

spring-6、動態代理(cglib 與 JDK)

JDK動態代理與Cglib動態代理 JDK動態代理: 1.能夠繼承靜態代理的全部優點.并且能夠實現代碼的復用.2.動態代理可以處理一類業務.只要滿足條件 都可以通過代理對象進行處理.3.動態代理的靈活性不強.4.JDK 的動態代理要求代理者必須實現接口, , 否則不能生成代理對象. . 1 packag…

JDK安裝與配置(Windows 7系統)

1.前言 安裝之前需弄清JDK、JRE、JVM這幾個概念&#xff0c;不然稀里糊涂不知道自己在裝什么。 &#xff08;1&#xff09;什么是java環境&#xff1a;我們知道&#xff0c;想聽音樂就要安裝音樂播放器&#xff0c;想看圖片需要安裝圖片瀏覽器&#xff0c;同樣道理&#xff0c;…

UVA839

這道題又是一道遞歸的題目 先貼上代碼 //這種沒有明確說個數的動態分配還是得用new #include<cstdio> #include<iostream> using namespace std; struct mobile {int WL,DL,WR,DR;mobile *left,*right;mobile(mobile *aNULL,mobile*bNULL):left(a),right(b){} }; m…

Thread.getContextClassLoader與Thread.getClassLoader()區別

在閱讀spring boot啟動時候的源碼中&#xff0c;發現獲取classLoader使用的是getContextClassLoader于是乎產生了疑問&#xff0c;這種獲取ClassLoader的方式與我們最常見的通過Class.getClassLoader二者有什么區別&#xff1f;都是在什么場景下使用呢&#xff1f; 首先來看看…

ssl 的jks 生成工具

https://www.myssl.cn/tools/merge-jks-cert.html 通過key 私鑰 &#xff0c;和公鑰pem 生成jks 轉載于:https://www.cnblogs.com/vana/p/9594298.html

NOIP模擬賽10 題解

t3&#xff1a; 題意 給你一棵樹&#xff0c;然后每次兩種操作&#xff1a;1.給一個節點染色 &#xff1b; 2. 查詢一個節點與任意已染色節點 lca 的權值的最大值 分析 考慮一個節點被染色后的影響&#xff1a;令它的所有祖先節點&#xff08;包括自身&#xff09;的所有除去更…

洛谷 P1136 迎接儀式 解題報告

P1136 迎接儀式 題目描述 LHX教主要來X市指導OI學習工作了。為了迎接教主&#xff0c;在一條道路旁&#xff0c;一群Orz教主er穿著文化衫站在道路兩旁迎接教主&#xff0c;每件文化衫上都印著大字。一旁的Orzer依次擺出“歡迎歡迎歡迎歡迎……”的大字&#xff0c;但是領隊突然…

spring源碼分析-core.io包里面的類

前些日子看《深入理解javaweb開發》時&#xff0c;看到第一章java的io流&#xff0c;發覺自己對io流真的不是很熟悉。然后看了下JDK1.7中io包的一點點代碼&#xff0c;又看了org.springframework.core.io包的一些類和組織方式&#xff0c;當作是學習吧。總結一下。 先掛下spri…

對類Vue的MVVM前端庫的實現

關于實現MVVM&#xff0c;網上實在是太多了&#xff0c;本文為個人總結&#xff0c;結合源碼以及一些別人的實現 關于雙向綁定 vue 數據劫持 訂閱 - 發布ng 臟值檢查backbone.js 訂閱-發布(這個沒有使用過&#xff0c;并不是主流的用法)雙向綁定&#xff0c;從最基本的實現來說…

java.util.prefs.Preferences

我們經常需要將我們的程序中的設定&#xff0c;如窗口位置&#xff0c;開啟過的文件&#xff0c;用戶的選項設定等數據記錄下來&#xff0c;以做便用戶下一次開啟程序能繼續使用這些數據。 以前我們通常的做法是使用Properties類&#xff0c;它提供以下方法: void load(InputS…

django的母板系統

一.母板渲染語法 1.變量 {{ 變量 }} 2.邏輯 {% 邏輯語 %} 二.變量 在母板中有變量時,母板引擎會去反向解析找到這個傳來的變量,然后替換掉. .(點),在母板中是深度查詢據點符,它的查詢順序: 字典 > 屬性或方法 > 數字索引 三.過濾器 1.語法 {{ value|filter_name:參數}} 2…

python學習總結----時間模塊 and 虛擬環境(了解)

python學習總結----時間模塊 and 虛擬環境&#xff08;了解&#xff09; time- sleep&#xff1a;休眠指定的秒數(可以是小數) - time&#xff1a;獲取時間戳# 獲取時間戳(從1970-01-01 00:00:00到此刻的秒數)t time.time()print(t) - localtime&#xff1a;將時間戳轉換為對象…