jsp數據交互2

application對象

application對象類似於系統的“全局變量”,用於同一個服務器內的所有用戶之間的數據共享,對於整個Web服務器,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():關閉流。

out
out.print();//輸出數據
out.newLine();//輸出一個換行符
out.flush();//輸出緩衝區裏的數據
out.close();//關閉輸出流
out.clearBuffer();//清除緩衝區裏的數據,並把數據輸出到客戶端
out.clear();//清除緩衝區裏的數據,但不會把數據輸出到客戶端
out.getBufferSize();//獲得緩衝區大小
out.getRemaining();//獲得緩衝區中沒有被佔用的空間大小
out.isAutoFlush();//返回布爾值。如果AutoFlush爲真 則返回真。

request
isUserInRole(String role) 判斷認證後的用戶是否屬於邏輯的role中的成員
getAttribute(String name) 返回由name指定的屬性值。若不存在則爲空
getAttributes()返回request對象的所有屬性的名字集合,其結果是一個枚舉的實例。
getCookies() 返回客戶端的所有Cookie對象,結果是一個Cookie數組。
getCharacterEncoding() 返回請求中的字符編碼方式。
getContentLength() 返回請求的Body的長度,如果不確定長度,返回-1
getHeader(String name) 獲得HTTP協議定義的文件頭信息
getHeaders(String name)  返回指定名字的request Header的所有值,其結果是一個枚舉的實例
getHeaderNames()返回所有request Header的名字 ,其結果是一個枚舉實例。
getInputStream() 返回請求的輸入流,用於獲得請求中的數據
getMethod() 獲得客戶端向服務器端傳送數據的方法,如GET,POST,HEADER,TRACE等。
getParameter(String name)獲得客戶端傳送給服務器端的參數值。
getParameterNames() 獲得客戶端傳送給服務器端的所有參數名字,其結果是一個枚舉的實例
getParameterValues(String name) 獲得指定參數的所有值。
getProtocol() 獲取客戶端向服務器端傳送數據所依據的協議名稱
getQueryString()  獲得查詢字符串,該字符串是由客戶端以GET方式向服務器端傳送的
getRequestURI() 獲取發出請求字符串的客戶端地址
getRemoteAddr() 獲取客戶端IP地址
getRemoteHost() 獲取客戶端名字 
getSession([Boolean create]) 返回和請求相關的session。create參數是可選的。當有參數create且這個參數值爲true時,如果客戶端還沒有創建session,那麼將創建一個新的session。
getServerName() 獲取服務器的名字
getServletPath()  獲取客戶端所請求的腳本文件的文件路徑
getServerPort() 獲取服務器的端口號
removeAttribute(String name) 刪除請求中的一個屬性
setAttribute(String name, Java.lang.Object obj) 設置request的參數值

response
addCookie(Cookie cook) 添加一個Cookie對象,用來保存客戶端的用戶信息
addHeader(String name,String value) 添加HTTP文件頭信息。該Header信息將傳達到客戶端,如果已經存在同名的則會覆蓋
containsHeader(String name) 判斷指定字句的Header是否已經存在,返回真假
encodeURL() 使用sessionId封裝URL。如果沒有封裝URL則返回原值
flushBuffer() 強制把當前緩衝區的內容發送到客戶端
getBufferSize() 返回緩衝區的大小
getOutputStream() 返回到客戶端的輸出流
sendError(int)  向客戶端發送錯誤信息。如404 指網頁不存在 
sendRedirect(String location) 把響應發送到另一個位置 進行處理
setContent(String contentType) 設置響應的MIME類型
setHeader(String name,String value) 設置指定名字的HTTP文件頭的值,若存在則會覆蓋。

session
getAttribute()獲取與指定名字相聯繫的屬性
getAttributeNames()session對象中存儲的每一個對象,其結果爲一個枚舉的實例
getCreateTime()  返回session的創建時間,最小單位這千分之一秒
getId()  返回唯一的標識,每個session的ID是不同的
getLastAccessedTime()返回和當前session對象相關的客戶端最後發送的請求時間
getMaxInactiveInterval()  返回決時間,負值表示session永遠不會過期。它的值爲session的生存時間
invalidate() 銷燬這個對象,
isNew() 如果客戶端不接受使用session,那麼每個請求中都會產生一個session對象。
removeAttribute(String name) 刪除與指定名字相聯繫的屬性
setAttribute(String name,Java.langObject obj) 設置指定名字的屬性值 並將 其存儲在session中。

pageContext
forward(String UriPath) 重定向
getAttribute(String name,[int scope] )  scope可選。用來檢索一個特定的已經 命名的對象的範圍,並且還可以通過調用 getAttributeNamesInScope()方法 ,檢索對鞭個特定範圍的每個屬性String字符串名稱的枚舉。
getException()返回當前的exception對象
getRequest()返回當前的request對象
getResponse()返回當前的response對象
getServletConfig()返回當前頁面的ServletConfig對象
getServletContext()返回ServletContext對象。這個對象對所有頁面都是共享的
getSession() 返回當前的session對象
findAttribute() 可以用來按照頁面,請求,會話以及應用程序範圍順序實現對某個已經命名的屬性的搜索。
setAttribute() 可以用來設置默認頁面範圍或特定範圍之中的已命名對象。removeAttribute()可以用來刪除默認範圍或特定範圍內的已命名對象

application
getAttribute(String name)返回指定名字的application對象的屬性的值
getAttributeNames() 返回所有應用程序級對象的屬性的名字 ,其結果爲枚舉的實例
getInitParameter(String name) 返回由指定名字的application對象的某個屬性的初始值
getServletInfo() 返回Servlet編譯器的當前版本的信息
setAttribute(String name,Object obj) 設置 指定名字的application對象的屬性的值

config
getServletContext() 返回執行者的Servlet上下文
getServletName()返回Servlet的名字
getInitParameter(String name) 返回名字爲name的初始參數的值
getInitParameterNames() 返回這個JSP的所有的初始參數的名字

page作用域

page作用域指單一JSP頁面的範圍,page作用域內的對象只能在創建該對象的頁面中訪問,

在page作用域內可以使用pageContext對象的setAttribute()和getAttribute()方法來訪問具有這種範圍類型

的對象。page作用域內的對象在客戶端每次請求JSP頁面時創建,在服務器發送相應或請求轉發到其他頁面或資源後失效。


jsp 的四個作用域 :page、request、session和application的區別 .

1.簡單說 page指當前頁面。在一個jsp頁面裏有效 
2.request 指從http請求到服務器處理結束,返回響應的整個過程。在這個過程中使用forward方式跳轉多個jsp。在這些頁面裏你都可以使用這個變量。 
3.Session 有效範圍當前會話,從瀏覽器打開到瀏覽器關閉這個過程。 
4.application它的有效範圍是整個應用。 
作用域裏的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用

 cookie由服務器端產生,發送給客戶端。

表現:

1.對特定對象的追蹤,如訪問次數,最後訪問時間,路徑等。

2.統計網頁瀏覽次數

3.在cookie有效期內,記錄用戶登陸信息。

4.實現各種個性化服務,如針對不同用戶喜好以不同的風格展示不同的內容

創建cookie對象:

Cookie newCookie=nwe Cookie(String name,String value);

name:用於代表cookie的名稱

value:用於表示當前key名稱所對應的值

什麼是Cookie

Cookie意爲“甜餅”,是由W3C組織提出,最早由Netscape社區發展的一種機制。目前Cookie已經成爲標準,所有的主流瀏覽器如IE、Netscape、Firefox、Opera等都支持Cookie。

由於HTTP是一種無狀態的協議,服務器單從網絡連接上無從知道客戶身份。怎麼辦呢?就給客戶端們頒發一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證。這樣服務器就能從通行證上確認客戶身份了。這就是Cookie的工作原理

Cookie實際上是一小段的文本信息。客戶端請求服務器,如果服務器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie。客戶端瀏覽器會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。服務器還可以根據需要修改Cookie的內容。


cookie與session的對比

1.session實在服務器端保存用戶信息,cookie是客戶端保存用戶信息

2..session中保存的值是Obiect類型,cookie保存的值是String值

3..session隨會話的結束而將其儲存的數據銷燬,cookie可以長期保存在客戶端

4.cookie通常用於保存不重要的用戶信息,重要的信息使用.session保存


JDBC鏈接數據庫

步驟:

1.加載JDBC驅動

2.與數據庫建立連接

3.發送SQL語句,並得到返回結果

4.處理返回結果

5.數據庫訪問結束後,進行資源釋放


JavaBean

java中開發的可以跨平臺的重要組件

JavaBean在服務器端的應用表現出了強大的生命力,在JSP程序中常用於封裝業務邏輯,數據庫操作等

JavaBean實際上是一個java類,這個類可以重用

JavaBean要求:

1.JavaBean是一個公有類,並提供無參的公有的構造方法

2.屬性私有

3.具有公有的訪問屬性的getter和setter方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章