1. jsp有哪些內置對象 作用分別是什麼
JSP內置對象(9個常用的內置對象)
1.request對象
客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,
然後做出響應。它是HttpServletRequest類的實例。
序號方法說明
objectgetAttribute(Stringname) 返回指定屬性的屬性值
EnumerationgetAttributeNames() 返回所有可用屬性名的枚舉
StringgetCharacterEncoding() 返回字元編碼方式
intgetContentLength() 返回請求體的長度(以位元組數)
StringgetContentType() 得到請求體的MIME類型
() 得到請求體中一行的二進制流
StringgetParameter(Stringname) 返回name指定參數的參數值
EnumerationgetParameterNames() 返回可用參數名的枚舉
String[]getParameterValues(Stringname) 返回包含參數name的所有值的數組
StringgetProtocol() 返回請求用的協議類型及版本號
StringgetScheme() 返回請求用的計劃名,如:http.https及ftp等
StringgetServerName() 返回接受請求的伺服器主機名
intgetServerPort() 返回伺服器接受此請求所用的埠號
BufferedReadergetReader() 返回解碼過了的請求體
StringgetRemoteAddr() 返回發送此請求的客戶端IP地址
StringgetRemoteHost() 返回發送此請求的客戶端主機名
voidsetAttribute(Stringkey,Objectobj) 設置屬性的屬性值
StringgetRealPath(Stringpath) 返回一虛擬路徑的真實路徑
2.response對象
response對象包含了響應客戶請求的有關信息,但在JSP中很少直接用到它。
它是HttpServletResponse類的實例。
序號方法說明
1StringgetCharacterEncoding() 返回響應用的是何種字元編碼
() 返回響應的一個二進制輸出流
3PrintWritergetWriter() 返回可以向客戶端輸出字元的一個對象
4voidsetContentLength(intlen) 設置響應頭長度
5voidsetContentType(Stringtype) 設置響應的MIME類型
6sendRedirect(java.lang.Stringlocation) 重新定向客戶端的請求
3.session對象
session對象指的是客戶端與伺服器的一次會話,從客戶連到伺服器的一個
WebApplication開始,直到客戶端與伺服器斷開連接為止。它是HttpSession
類的實例.
序號方法說明
longgetCreationTime() 返回SESSION創建時間
publicStringgetId() 返回SESSION創建時JSP引擎為它設的惟一ID號
longgetLastAccessedTime() 返回此SESSION里客戶端最近一次請求時間
intgetMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取
消(ms)
String[]getValueNames() 返回一個包含此SESSION中所有可用屬性的數
組
voidinvalidate() 取消SESSION,使SESSION不可用
booleanisNew() 返回伺服器創建的一個SESSION,客戶端是否已經加入
voidremoveValue(Stringname) 刪除SESSION中指定的屬性
voidsetMaxInactiveInterval() 設置兩次請求間隔多長時間此SESSION被取
消(ms)
4.out對象
out對象是JspWriter類的實例,是向客戶端輸出內容常用的對象
序號方法說明
voidclear() 清除緩沖區的內容
voidclearBuffer() 清除緩沖區的當前內容
voidflush() 清空流
intgetBufferSize() 返回緩沖區以位元組數的大小,如不設緩沖區則為0
intgetRemaining() 返回緩沖區還剩餘多少可用
booleanisAutoFlush() 返回緩沖區滿時,是自動清空還是拋出異常
voidclose() 關閉輸出流
5.page對象
page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是
java.lang.Object類的實例
序號方法說明
classgetClass 返回此Object的類
inthashCode() 返回此Object的hash碼
booleanequals(Objectobj) 判斷此Object是否與指定的Object對象相等
void(Objectobj) 把此Object拷貝到指定的Object對象中
Objectclone() 克隆此Object對象
StringtoString() 把此Object對象轉換成String類的對象
voidnotify() 喚醒一個等待的線程
voidnotifyAll() 喚醒所有等待的線程
voidwait(inttimeout) 使一個線程處於等待直到timeout結束或被喚醒
voidwait() 使一個線程處於等待直到被喚醒
voidenterMonitor() 對Object加鎖
voidexitMonitor() 對Object開鎖
6.application對象
application對象實現了用戶間數據的共享,可存放全局變數。它開始於伺服器
的啟動,直到伺服器的關閉,在此期間,此對象將一直存在;這樣在用戶的前
後連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何
地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。伺服器的啟動和
關閉決定了application對象的生命。它是ServletContext類的實例。
序號方法說明
ObjectgetAttribute(Stringname) 返回給定名的屬性值
EnumerationgetAttributeNames() 返回所有可用屬性名的枚舉
voidsetAttribute(Stringname,Objectobj) 設定屬性的屬性值
voidremoveAttribute(Stringname) 刪除一屬性及其屬性值
StringgetServerInfo() 返回JSP(SERVLET)引擎名及版本號
StringgetRealPath(Stringpath) 返回一虛擬路徑的真實路徑
ServletContextgetContext(Stringuripath) 返回指定WebApplication的application對象
intgetMajorVersion() 返回伺服器支持的ServletAPI的最大版本號
intgetMinorVersion() 返回伺服器支持的ServletAPI的最大版本號
StringgetMimeType(Stringfile) 返回指定文件的MIME類型
URLgetResource(Stringpath) 返回指定資源(文件及目錄)的URL路徑
(Stringpath) 返回指定資源的輸入流
(Stringuripath) 返回指定資源的RequestDispatcher對象
ServletgetServlet(Stringname) 返回指定名的Servlet
EnumerationgetServlets() 返回所有Servlet的枚舉
EnumerationgetServletNames() 返回所有Servlet名的枚舉
voidlog(Stringmsg) 把指定消息寫入Servlet的日誌文件
voidlog(Exceptionexception,Stringmsg) 把指定異常的棧軌跡及錯誤消息寫入Servlet的日誌文件
voidlog(Stringmsg,Throwablethrowable) 把棧軌跡及給出的Throwable異常的說明信息寫入Servlet的日誌文件
7.exception對象
exception對象是一個例外對象,當一個頁面在運行過程中發生了例外,就產
生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,
否則無法編譯。他實際上是java.lang.Throwable的對象
序號方法說明
StringgetMessage() 返回描述異常的消息
StringtoString() 返回關於異常的簡短描述消息
voidprintStackTrace() 顯示異常及其棧軌跡
ThrowableFillInStackTrace() 重寫異常的執行棧軌跡
8.pageContext對象
pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是
說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的
某一屬性值,他相當於頁面中所有功能的集大成者,它的本類名也叫
pageContext。
序號方法說明
JspWritergetOut() 返回當前客戶端響應被使用的JspWriter流(out)
HttpSessiongetSession() 返回當前頁中的HttpSession對象(session)
ObjectgetPage() 返回當前頁的Object對象(page)
ServletRequestgetRequest() 返回當前頁的ServletRequest對象(request)
ServletResponsegetResponse() 返回當前頁的ServletResponse對象(response)
ExceptiongetException() 返回當前頁的Exception對象(exception)
ServletConfiggetServletConfig() 返回當前頁的ServletConfig對象(config)
() 返回當前頁的ServletContext對象(application)
voidsetAttribute(Stringname,Objectattribute) 設置屬性及屬性值
voidsetAttribute(Stringname,Objectobj,intscope) 在指定范圍內設置屬性及屬性值
publicObjectgetAttribute(Stringname) 取屬性的值
ObjectgetAttribute(Stringname,intscope) 在指定范圍內取屬性的值
publicObjectfindAttribute(Stringname) 尋找一屬性,返回起屬性值或NULL
voidremoveAttribute(Stringname) 刪除某屬性
voidremoveAttribute(Stringname,intscope) 在指定范圍刪除某屬性
intgetAttributeScope(Stringname) 返回某屬性的作用范圍
(intscope) 返回指定范圍內可用的屬性名枚舉
voidrelease() 釋放pageContext所佔用的資源
voidforward(StringrelativeUrlPath) 使當前頁面重導到另一頁面
voidinclude(StringrelativeUrlPath) 在當前位置包含另一文件
9.config對象
config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(通過屬性名和屬性值構成)以及伺服器的有關信息(通過傳遞一個ServletContext對象)
2. Jsp鐨勫嚑涓鍐呯疆瀵硅薄鍒板簳鏄騫蹭粈涔堢敤鐨勶紵 pageContext session applicati
JSP鍏辨湁浠ヤ笅9縐嶅熀鏈鍐呯疆緇勪歡
1銆乺equest瀵硅薄 瀹㈡埛絝璇鋒眰錛屾よ鋒眰浼氬寘鍚鏉ヨ嚜GET/POST璇鋒眰鐨勫弬鏁伴氳繃瀹冩墠鑳戒簡 瑙e埌瀹㈡埛鐨勯渶奼傦紝鐒跺悗鍋氬嚭鍝嶅簲銆
2銆乺esponse瀵硅薄 鍝嶅簲瀹㈡埛璇鋒眰鐨勬湁鍏充俊鎮
3銆乻ession瀵硅薄 瀹冩寚鐨勬槸瀹㈡埛絝涓庢湇鍔″櫒鐨勪竴嬈′細璇濓紝浠庡㈡埛絝榪炲埌鏈嶅姟鍣ㄧ殑涓涓 涓猈ebApplication寮濮嬶紝鐩村埌瀹㈡埛絝涓庢湇鍔 鍣ㄦ柇寮榪炴帴涓烘銆
4銆乷ut瀵硅薄 瀹冩槸JspWriter綾葷殑瀹炰緥,鏄鍚戝㈡埛絝杈撳嚭鍐呭瑰父鐢ㄧ殑瀵硅薄
5銆乸age瀵硅薄 瀹冩槸鎸囧悜褰撳墠JSP欏甸潰鏈韜錛屾湁鐐硅薄綾諱腑鐨則his鎸囬拡錛屽畠鏄 java.lang.Object綾葷殑瀹炰緥
6銆乤pplication瀵硅薄 瀹冨疄鐜頒簡鐢ㄦ埛闂存暟鎹鐨勫叡浜錛屽彲瀛樻斁鍏ㄥ矓鍙橀噺銆傚畠寮濮嬩簬鏈嶅姟鍣ㄧ殑鍚鍔錛岀洿鍒版湇鍔″櫒鐨勫叧闂
7銆乪xception瀵硅薄 瀹冩槸涓涓渚嬪栧硅薄錛屽綋涓涓欏甸潰鍦ㄨ繍琛岃繃紼嬩腑鍙戠敓浜嗕緥澶栵紝灝變駭鐢熻繖涓瀵硅薄銆
8銆乸ageContext瀵硅薄 瀹冩彁渚涗簡瀵笿SP欏甸潰鍐呮墍鏈夌殑瀵硅薄鍙婂悕瀛楃┖闂寸殑璁塊棶
9銆乧onfig瀵硅薄 瀹冩槸鍦ㄤ竴涓猄ervlet鍒濆嬪寲鏃訛紝JSP寮曟搸鍚戝畠浼犻掍俊鎮鐢ㄧ殑
3. jsp鏈夊摢浜涘唴緗瀵硅薄 浣滅敤鍒嗗埆鏄浠涔
1. JSP鐨勫唴緗瀵硅薄鍙婃柟娉曘
絳旀:request琛ㄧずHttpServletRequest瀵硅薄銆傚畠鍖呭惈浜嗘湁鍏蟲祻瑙堝櫒璇鋒眰鐨 淇℃伅錛屽苟涓旀彁渚涗簡鍑犱釜鐢ㄤ簬鑾峰彇cookie, header, 鍜宻ession鏁版嵁鐨勬湁鐢ㄧ殑鏂規硶銆
response琛ㄧずHttpServletResponse瀵硅薄錛屽苟鎻愪緵浜嗗嚑涓鐢ㄤ簬璁劇疆閫佸洖 嫻忚堝櫒鐨勫搷搴旂殑鏂規硶錛堝俢ookies,澶翠俊鎮絳夛級
out瀵硅薄鏄痡avax.jsp.JspWriter鐨勪竴涓瀹炰緥錛屽苟鎻愪緵浜嗗嚑涓鏂規硶浣誇綘鑳界敤 浜庡悜嫻忚堝櫒鍥為佽緭鍑虹粨鏋溿
pageContext琛ㄧず涓涓猨avax.servlet.jsp.PageContext瀵硅薄銆傚畠鏄鐢ㄤ簬鏂逛究瀛樺彇鍚勭嶈寖鍥寸殑鍚嶅瓧絀洪棿銆乻ervlet鐩稿叧鐨勫硅薄鐨凙PI錛屽苟涓斿寘
瑁呬簡閫氱敤鐨剆ervlet鐩稿叧鍔熻兘鐨勬柟娉曘
session琛ㄧず涓涓璇鋒眰鐨刯avax.servlet.http.HttpSession瀵硅薄銆 Session鍙浠ュ瓨璐鐢ㄦ埛鐨勭姸鎬佷俊鎮
applicaton 琛ㄧず涓涓猨avax.servle.ServletContext瀵硅薄銆傝繖鏈夊姪浜庢煡鎵 鏈夊叧servlet寮曟搸鍜宻ervlet鐜澧冪殑淇℃伅
config琛ㄧず涓涓猨avax.servlet.ServletConfig瀵硅薄銆傝ュ硅薄鐢ㄤ簬瀛樺彇 servlet瀹炰緥鐨勫垵濮嬪寲鍙傛暟銆
page琛ㄧず浠庤ラ〉闈浜х敓鐨勪竴涓猻ervlet瀹炰緥
4. 寫出3個常用的jsp內置對象,並且說明其功能和作用域
Request對象
該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該對象可以獲取用戶提交的信息。
2.Response對象
對客戶的請求做出動態的響應,向客戶端發送數據。
(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)Response重定向
再某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面,可以使用Response的sendRedirect(URL)方法實現客戶的重定向。
例如:response.sendRedirect("index.jsp");。
3.Session對象
Session對象是一個JSP內置對象,它再第一個JSP頁面被裝載時自動創建,完成會話期管理。從一個客戶打開瀏覽器並連接到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被成為一個會話。當一個客戶訪問一個伺服器時,可能會再這個伺服器的幾個頁面之間切換,伺服器應當通過某種辦法知道這是同一個客戶,這就需要Session對象。
5. jsp有哪些內置對象,作用分別是什麼,分別有哪些方法'
jsp內置對象
定義:可以不加聲明就在JSP頁面腳本(Java程序片和Java表達式)中使用的成員變數
JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
1.request對象
客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然後做出響應。它是HttpServletRequest類的實例。
序號 方 法 說 明
1 object getAttribute(String name) 返回指定屬性的屬性值
2 Enumeration getAttributeNames() 返回所有可用屬性名的枚舉
3 String getCharacterEncoding() 返回字元編碼方式
4 int getContentLength() 返回請求體的長度(以位元組數)
5 String getContentType() 得到請求體的MIME類型
6 ServletInputStream getInputStream() 得到請求體中一行的二進制流
7 String getParameter(String name) 返回name指定參數的參數值
8 Enumeration getParameterNames() 返回可用參數名的枚舉
9 String[] getParameterValues(String name) 返回包含參數name的所有值的數組
10 String getProtocol() 返回請求用的協議類型及版本號
11 String getScheme() 返回請求用的計劃名,如:http.https及ftp等
12 String getServerName() 返回接受請求的伺服器主機名
13 int getServerPort() 返回伺服器接受此請求所用的埠號
14 BufferedReader getReader() 返回解碼過了的請求體
15 String getRemoteAddr() 返回發送此請求的客戶端IP地址
16 String getRemoteHost() 返回發送此請求的客戶端主機名
17 void setAttribute(String key,Object obj) 設置屬性的屬性值
18 String getRealPath(String path) 返回一虛擬路徑的真實路徑
2.response對象
response對象包含了響應客戶請求的有關信息,但在JSP中很少直接用到它。它是HttpServletResponse類的實例。
序號 方 法 說 明
1 String getCharacterEncoding() 返回響應用的是何種字元編碼
2 ServletOutputStream getOutputStream() 返回響應的一個二進制輸出流
3 PrintWriter getWriter() 返回可以向客戶端輸出字元的一個對象
4 void setContentLength(int len) 設置響應頭長度
5 void setContentType(String type) 設置響應的MIME類型
6 sendRedirect(java.lang.String location) 重新定向客戶端的請求
3.session對象
session對象指的是客戶端與伺服器的一次會話,從客戶端連到伺服器的一個WebApplication開始,直到客戶端與伺服器斷開連接為止。它是HttpSession類的實例.
序號 方 法 說 明
1 long getCreationTime() 返回SESSION創建時間
2 public String getId() 返回SESSION創建時JSP引擎為它設的惟一ID號
3 long getLastAccessedTime() 返回此SESSION里客戶端最近一次請求時間
4 int getMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取消(ms)
5 String[] getValueNames() 返回一個包含此SESSION中所有可用屬性的數組
6 void invalidate() 取消SESSION,使SESSION不可用
7 boolean isNew() 返回伺服器創建的一個SESSION,客戶端是否已經加入
8 void removeValue(String name) 刪除SESSION中指定的屬性
9 void setMaxInactiveInterval() 設置兩次請求間隔多長時間此SESSION被取消(ms)
4.out對象
out對象是JspWriter類的實例,是向客戶端輸出內容常用的對象
序號 方 法 說 明
1 void clear() 清除緩沖區的內容
2 void clearBuffer() 清除緩沖區的當前內容
3 void flush() 清空流
4 int getBufferSize() 返回緩沖區以位元組數的大小,如不設緩沖區則為0
5 int getRemaining() 返回緩沖區還剩餘多少可用
6 boolean isAutoFlush() 返回緩沖區滿時,是自動清空還是拋出異常
7 void close() 關閉輸出流
5.page對象
page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例
序號 方 法 說 明
1 class getClass 返回此Object的類
2 int hashCode() 返回此Object的hash碼
3 boolean equals(Object obj) 判斷此Object是否與指定的Object對象相等
4 void (Object obj) 把此Object拷貝到指定的Object對象中
5 Object clone() 克隆此Object對象
6 String toString() 把此Object對象轉換成String類的對象
7 void notify() 喚醒一個等待的線程
8 void notifyAll() 喚醒所有等待的線程
9 void wait(int timeout) 使一個線程處於等待直到timeout結束或被喚醒
10 void wait() 使一個線程處於等待直到被喚醒
11 void enterMonitor() 對Object加鎖
12 void exitMonitor() 對Object開鎖
6.application對象
application對象實現了用戶間數據的共享,可存放全局變數。它開始於伺服器的啟動,直到伺服器的關閉,在此期間,此對象將一直存在;這樣在用戶的前後連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。伺服器的啟動和關閉決定了application對象的生命。它是ServletContext類的實例。
序號 方 法 說 明
1 Object getAttribute(String name) 返回給定名的屬性值
2 Enumeration getAttributeNames() 返回所有可用屬性名的枚舉
3 void setAttribute(String name,Object obj) 設定屬性的屬性值
4 void removeAttribute(String name) 刪除一屬性及其屬性值
5 String getServerInfo() 返回JSP(SERVLET)引擎名及版本號
6 String getRealPath(String path) 返回一虛擬路徑的真實路徑
7 ServletContext getContext(String uripath) 返回指定WebApplication的application對象
8 int getMajorVersion() 返回伺服器支持的Servlet API的最大版本號
9 int getMinorVersion() 返回伺服器支持的Servlet API的最大版本號
10 String getMimeType(String file) 返回指定文件的MIME類型
11 URL getResource(String path) 返回指定資源(文件及目錄)的URL路徑
12 InputStream getResourceAsStream(String path) 返回指定資源的輸入流
13 RequestDispatcher getRequestDispatcher(String uripath) 返回指定資源的RequestDispatcher對象
14 Servlet getServlet(String name) 返回指定名的Servlet
15 Enumeration getServlets() 返回所有Servlet的枚舉
16 Enumeration getServletNames() 返回所有Servlet名的枚舉
17 void log(String msg) 把指定消息寫入Servlet的日誌文件
18 void log(Exception exception,String msg) 把指定異常的棧軌跡及錯誤消息寫入Servlet的日誌文件
19 void log(String msg,Throwable throwable) 把棧軌跡及給出的Throwable異常的說明信息 寫入Servlet的日誌文件
7.exception對象
exception對象是一個例外對象,當一個頁面在運行過程中發生了例外,就產生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的對象
序號 方 法 說 明
1 String getMessage() 返回描述異常的消息
2 String toString() 返回關於異常的簡短描述消息
3 void printStackTrace() 顯示異常及其棧軌跡
4 Throwable FillInStackTrace() 重寫異常的執行棧軌跡
8.pageContext對象
pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當於頁面中所有功能的集大成者,它的本類名也叫pageContext。
序號 方 法 說 明
1 JspWriter getOut() 返回當前客戶端響應被使用的JspWriter流(out)
2 HttpSession getSession() 返回當前頁中的HttpSession對象(session)
3 Object getPage() 返回當前頁的Object對象(page)
4 ServletRequest getRequest() 返回當前頁的ServletRequest對象(request)
5 ServletResponse getResponse() 返回當前頁的ServletResponse對象(response)
6 Exception getException() 返回當前頁的Exception對象(exception)
7 ServletConfig getServletConfig() 返回當前頁的ServletConfig對象(config)
8 ServletContext getServletContext() 返回當前頁的ServletContext對象(application)
9 void setAttribute(String name,Object attribute) 設置屬性及屬性值
10 void setAttribute(String name,Object obj,int scope) 在指定范圍內設置屬性及屬性值
11 public Object getAttribute(String name) 取屬性的值
12 Object getAttribute(String name,int scope) 在指定范圍內取屬性的值
13 public Object findAttribute(String name) 尋找一屬性,返回起屬性值或NULL
14 void removeAttribute(String name) 刪除某屬性
15 void removeAttribute(String name,int scope) 在指定范圍刪除某屬性
16 int getAttributeScope(String name) 返回某屬性的作用范圍
17 Enumeration getAttributeNamesInScope(int scope) 返回指定范圍內可用的屬性名枚舉
18 void release() 釋放pageContext所佔用的資源
19 void forward(String relativeUrlPath) 使當前頁面重導到另一頁面
20 void include(String relativeUrlPath) 在當前位置包含另一文件
9.config對象
config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(通過屬性名和屬性值構成)以及伺服器的有關信息(通過傳遞一個ServletContext對象)
序號 方 法 說 明
1 ServletContext getServletContext() 返回含有伺服器相關信息的ServletContext對象
2 String getInitParameter(String name) 返回初始化參數的值
3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有參數的枚舉
6. jsp有哪些內置對象 作用分別是什麼
jsp一共有9個內置對象,分別是以下9個:
1.Request對象
發送請求時,該對象被創建,一次請求結束後即銷毀。(一次請求產生一個request對象)
該對象封裝了用戶提交的信息,通過調用該對象相應的方法要以獲取封裝的信息。即,使用該對象可以獲取用戶提交的信息。
當Request對象獲取客戶提交的內容為漢字字元時,會出現亂碼現象,則必須進行特殊處理。首先,將獲取的字元串用ISO8859-1進行編碼,並將編碼存放到一個位元組數組中,然後將這個數組轉化為字元串對象即可。如下代碼:
String text = request.getParameter("body");
byte [] b = text.getBytes("ISO8859-1"); //將text字元串轉換成位元組數組---編碼的過程
text = new String(b); //構造字元串,按照當前操作系統的字元集進行構造。將位元組轉換成字元串---解碼的過程
Request常用的方法:
getParameter(String s) ----- 獲取表單提交的信息
String s = request.getParameter("name");
getProtocol() -----獲取客戶使用的協議
String s = request.getProtocol() ;
getServletPath() ----獲取客戶提交信息的頁面
String s = request.getServletPath();
getMethod() -----獲取客戶提交信息的方式 get或post
String s = request.getMethod();
getHeader() ----- 獲取HTTP頭文件中的accept、accept-encoding和host的值
String s = request.getHeader("accept");
getRemoteAddr() --獲取客戶的ip地址
String s = request.getRemoteAddr();
getServerHost() ---獲取客戶機的名稱
String s = request.getServerHost();
getServerName() ---獲取伺服器名稱
String s = request.getServerName();
getServerPort() ----獲取伺服器的商口號
String s = request.getServerPort();
getPamameterNames() ----獲取客戶端提交的所有參數的名字
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){
String s = (String) enum.nextElement();
out.println(s);
}
2. Response對象:對客戶的請求做出動態響應,向客戶端發送數據。響應客戶請求時創建,響應結束時銷毀。(一次響應產生一個response對象)
動態響應contentType屬性
當一個用戶訪問了一個jsp頁面時,如果該頁面用page指令設置頁面的contentType屬性為text/html,那麼jsp引擎將按照這個屬性值做出反應。如果要動態改變這個屬性值來響應客戶,就需要使用Response對象的setContentType(String s);方法來改變contentType屬性的值。
格式:response.setContentType(String s) -----參數s可取:text/html,application/x-msexcel,application/msword等
Response重定向
在某些情況下,當響應客戶時,需要將客戶重新引導到另一個頁面,可以使用Response的sendRedirect(URL);方法,實現客戶的重定向
格式:response.sendRedirect("index.jsp");
3. Session對象: 在頁面的page指令加上session="true" 或預設 情況下以及在servlet中使用request.getSession();的方式進行創建。超時或服務停止時,session結束。(一個用戶對應一個session對象)
什麼是session對象? ----- 它是一個jsp內置對象,它在第一個jsp被裝載時自動創建,完成會話期管理。從一個客戶打開瀏覽器並連接到伺服器開始,到客戶關閉瀏覽器離 開這個伺服器結束(或者超時),被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間切換,伺服器應當通過某種辦法知道這是一個客戶,就需要創建session對象。
session對象的ID -----當一個客戶首次訪問伺服器上的一個jsp頁面時,jsp引擎會產生一個session對象,同時分配一個String類型的的ID號,jsp引擎同時將這個ID號發送到客戶端,存放在cookie中,這樣,session對象直到客戶關閉瀏覽器後,伺服器端,該客戶的session對象才會消失,會並,和客戶的會話對應關系消失。當客戶重新打開瀏覽器再連接到該伺服器時,伺服器為該客戶再創建一個新的session對象。
session對象的常用方法:
public String getId() ----獲取Session對象的編號
pulbic void setAttribute(String key,Object obj) --- 將參數object指定的對象obj添加到Session對象中,並為添加的對象指定一個索引關鍵字
public Object getAttribute(String key) --- 獲取session對象中含有關鍵字的對象
public Blooean isNew() ----判斷是否為一個新的客戶
4. Application對象:啟動服務時創建,停止服務時銷毀。(整個程序只有一個application對象)
什麼是Application對象? --- 伺服器啟動後就產生了這個Application對象,當客戶在所訪問的的網站的各個頁面之間瀏覽時,這個Application對象都是同一個,直到伺服器關閉。但是,與session對象不同的是,所有客戶的Application對象都是同一個,即,所有客戶共享這個內置的Application對象。
Application對象的常用方法
setAttribute(String key,Ojbect obj) ----將參數obj添加到Application對象中,並為添加的對象指定一個索引關鍵字
getAttribute(String key); ---- 獲取Application對象中含有關鍵字的對象
5.Out對象:請求時,就創建,請求結束時,銷毀。(一個請求,創建一個out對象)
Out對象是一個輸出流,用來向客戶端輸出數據。out對象用於各種數據的輸出。其常用方法如下:
out.print(); ---- 向瀏覽器輸出各種類型數據
out.newLine(); --- 輸出一個換行符
out.close(); ---關閉流
6.cookie對象:
什麼是cookie?----cookie是web伺服器保存在用戶硬碟上的一段文本。cookie允許一個web站點在用戶電腦上保存信息並且隨後再取它。
舉例來說,一個web站點可能會為每一個訪問者產生一個唯一的ID、然後以cookie文件的形式保存在每個用戶的機器上。
如果用戶選擇的是IE瀏覽器訪問web,用戶就會看到所有保存在自己硬碟上的cookie。它們最常存放的地方是:c:/Windows/Cookies。cookie是以」關鍵字 key = 值 value「的格式來保存記錄的。
創建一個cookie對象
調用cookid對象的構造函數就可以創建cookie對象。cookie的構造函數有兩個字元串參數:cookie名字和cookie值。
如:Cookie c = new Cookie("username","hyc");
將cookie對象傳送到客戶端
在jsp中,如果要將封裝好的cookie對象傳送到客戶端,可使用Response對象的addCookie()方法
如:Response.addCookie();
讀取保存在客戶端的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());
}
}
設置cookie對象的有效時間
調用cookie對象的setMaxAge()方法,可以設置cookie對象的有效時間。如
Cookie c = new Cookie("username","hyc");
c.setMaxAge(3600);
cookie應用
cookie對象的典型應用是用來統計網站的訪問人數。由於代理伺服器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯 一的ID。使用cookie,網站可以完成以下工作
測試定多少人訪問過;
測定訪問者有多少是新用戶(即第一次來訪)、有多少老用戶;
測定一個用戶多久訪問一次網站
當一個用戶第一次訪問時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶的ID對應的計數器加1,得到用戶來訪的次數。
7.config對象:配置對象
8.page對象:頁面對象
9.Exception對象:在處理異常的網頁中可以直接訪問exception隱式對象
7. jsp九大內置對象和作用域分別有哪些
Jsp九大內置對象和四種作用域
1.request
request對象是javax.servlet.httpServletRequest類型的對象。該對象代表了客戶端的請求信息,主要用於接受通過HTTP協議傳送到伺服器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。通俗來講就是客戶端的請求信息被封裝在Request對象中,並傳給伺服器。
2.response
response代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。但在JSP頁面中很少直接用到。
3.session
從客戶端到伺服器的一次會話,從一個客戶打開瀏覽器並連接到伺服器開始,直到客戶端與伺服器斷開連接為止。
4.application
application伺服器啟動後就產生application對象,直到伺服器結束。實現了用戶間數據的共享,可存放全局變數。與session不同的是,所有客戶的application對象都是同一個,在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。它是ServletContext類的實例。
5.out
用於在WEB瀏覽器內輸出信息,並且管理應用伺服器上的輸出緩沖區。
6.page
代表JSP本身,只有在JSP頁面內才是合法的。類似於Java編程中的this指針。
7.config
主要作用是取的伺服器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。
8.exception
Java.lang.Throwable的實例。當一個頁面在運行過程中發生了例外,就產生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。
9.pageContext
pageContext對象的作用是取的任何范圍的參數,通過它可以獲取JSP頁面的out、request、response、session、application等對象。pageContext對象的創建和初始化都是由容器來完成,在JSP頁面中可以直接使用 pageContext對象。
四種作用域:
page -> 頁面級別,顯然只有在一個頁面內可用。
request -> 請求級別 伺服器跳轉,一次請求之後消失。
session -> 會話級別 客戶端跳轉(伺服器跳轉),與瀏覽器有關,ie是在重新打開ie時才會不同。
application = 應用級別,當重啟伺服器時才會消失