JSP的內置對象,JSP內置對象
概念:
JSP內置對象是Web容器創建的一組對象,不使用new關鍵字創建,就可以直接使用。
常用的JSP內置對象:
out對象
緩沖區——Buffer,就是內存的一塊區域,用來保存臨時數據。
out對象是JSPWriter類的實例,向客戶端輸出內容時常用的對象。
out對象常用的方法有:
- void println() 向客戶端打印字符串;
- void flush() 將緩沖區內容輸出到客戶端;
- void clear() 清除緩沖區的內容,如果在flush之後調用會拋出異常;
- void clearBuffer() 清除緩沖區的內容,在flush之後調用不會拋出異常;
- int getBufferSize() 返回緩沖區字節數的大小,如果不設緩沖區則為0;
- int getRemaining() 返回緩沖區還剩余多少可用;
- boolean isAutoFlush() 返回緩沖區滿時,是自動清空還是拋出異常;
- void close() 關閉輸出流
get與post的區別
表單有兩種提交方式:get與post
提交方式 | 提交內容的方式 | 數據量大小 | 安全性 | 效率 | 適用情況 |
get
明文,通過URL提交數據(數據在URL中可以看到)
不超過2KB
較低
高
適合提交數據量不大,安全性不高,的數據;比如:搜素、查詢等功能。
post
將用戶提交的信息封裝在HTML HEADER內
數據量大
高
適合提交數據量大,安全性高,的用戶信息;比如:注冊、修改、上傳等功能。
request對象
客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然後做出響應。
request對象是HttpServletRequest類的實例。
request對象具有請求域,即完成客戶端的請求之前,該對象一直有效。
常用的方法有:
- String getParameter(String name) 返回指定參數的參數值;
- String[] getParameterValues(String name) 返回包含指定參數的所有參數值的數組;
- void setAttribute(String,Object) 存儲此請求中的屬性;
- object getAttribute(String name) 返回指定屬性的屬性值;
- String getContentType() 得到請求體的MIME類型;
- Stirng getProtocol() 返回請求的協議類型和版本號;
- String getServerName() 返回接收請求的服務器主機名;
- int getServerPort() 返回服務器接收此請求所用的端口號;
- String getCharacterEncoding() 返回字符編碼方式;
- int getContentLength() 返回請求體的長度(字節數);
- String getRemoteAddr() 返回發送此請求的客戶端IP地址;
- String getRealPath(String path) 返回某虛擬路徑的真實路徑;
- String getContentPath() 返回上下文路徑。
response對象
response對象包含了,響應客戶請求的有關信息,在JSP中很少直接用到它。
response對象是HttpServletResponse類的實例。
response對象具有頁面作用域,即訪問一個頁面時,該頁面內的response對象只能對這次訪問有效,其它頁面的response對象對當前頁面無效。
常用的方法:
- String getCharacterEncoding() 返回響應的字符編碼;
- void setContentType(String type) 設置響應的MIME類型;
- PrintWriter getWriter() 返回一個 可以向客戶端輸出字符的 對象;(response對象生成的輸出流對象,出現在out內置對象的前面)
- sendRedirect(java.lang.String location) 重新定向客戶端的請求。
請求轉發VS請求重定向
方式 | Client/Server | 方法 | 說明 | URL內容 |
請求重定向
客戶端行為
response.sendRedirect()
本質上等同於兩次請求,前一次的請求對象不會保存
URL改變
請求轉發
服務器行為
request.getRequestDispatcher().forward(req,resp)
一次請求,轉發後請求對象會保存
URL不變
session對象
session:客戶端與服務器的一次會話
Web中的session:用戶在浏覽某個網站時,從進入網站,到浏覽器關閉所經過的這段時間,也就是,用戶浏覽這個網站所花費的時間。
session實際上是一個特定的時間概念。
session對象在第一個JSP頁面被裝載時自動創建,開始會話期管理。
一個session:從客戶打開浏覽器並連接到服務器開始,到客戶關閉浏覽器離開這個服務器結束。
session對象,是HttpSession類的實例。
常用的方法:
application對象
page對象
pageContext對象
exception對象
config對象