客戶端的請求信息被封裝在request對象中,經過它才能瞭解到客戶的需求,而後作出響應,它是HttpServlteRequest類的實例。Request對象具備請求域,即完成客戶端的請求以前,該對象一直存在。
Getparameter(String name) 返回name指定參數的參數值
GetparameterValues(String name) 返回包含參數name全部值的數組
request.setCharacterEncoding("utf-8") 解決中文亂碼問題java
使用URL傳參數
Request.setCharacterEncoding(「utf-8」)//解決中文亂碼問題,沒法解決URL傳遞中文出現的亂碼問題,在server.xml中
名稱對象關聯在reuest中
Void SetAttribute(String,Object) 存儲請求中的值 使用鍵值對
Object GetAttribute(String name) 返回指定屬性的屬性值
獲取客戶端信息
String GetContentType() 獲得請求體的MIME類型
String GetPritocol() 返回請求用的協議類型和版本號
String getServerName 返回接受請求的服務器主機名
Int setServerPort() 返回服務器接受此請求所用的端口號
String getCharacterEncoding() 返回字符編碼格式
Void setCharacterEncoding() 設置請求的字符編碼格式
Int getContentLength() 返回請求體的長度(以字節數)
String getRemoteAddr() 返回發送此請求的客戶端IP地址
String getRealPath(String path) 返回虛擬路的真實路徑 request.jsp
String request.getContextPath() 返回上下文路徑 項目的虛擬路徑
Response對象包含了響應客戶請求的有關信息,但在JSP中不多引用到它。它是HttpServletResponse類的實例,該對象具備頁面做用域,當訪問一個頁面時,頁面內的response對象只對本次訪問有效,其餘頁面的response對象對當前頁面無效。
String setCharacterEncoding() 返回響應用的是何種字符編碼
Void setContentType(String type) 設置響應的MIME類型
PrintSwrite setWrite()返回能夠向客戶端輸出字符的一個對象(注意比較:PriteWrite與內置out對象的區別) 導入java.io.*
SendRedirect(java.lang.String location) 從新定向客戶端的請求
請求轉發和請求重定向
請求重定向:客戶端行爲,response.sendRedirect(),本質上講等於兩次請求,前一次的請求對象不會保存,地址的URL地址會改變,連接至關於請求重定向
請求轉發:服務器行爲,request.getRequestDispatcher().forward(req,resp),是一次請求,轉發後請求對象會保存,地址欄的URL地址不會改變,請求會更快
輸出緩衝區
服務器輸出到客戶端的內容不會直接寫到客戶端,而是寫到輸出緩衝區。
緩衝區被定義爲暫時放置輸入或者輸出資料的內存。
三個條件下,緩衝區的內容會寫到客戶端:
1JSP頁面的輸出信息已經所有寫入到了緩衝區
2緩衝區已滿
3在JSP頁面中,調用了response對象的flushBuffer()方法或out對象的flush()方法
Response.setBufferSize(32) 設置緩存區的大小sql
out對象是 javax.servlet.jsp.JspWriter 類的實例,用來在response對象中寫入內容。
用來輸出boolean,char,int,double,String,object等類型數據的重要方法
數組
Session對象在第一個JSP頁面被裝載時,完成會話期管理
Session表示客戶端和服務器的一次會話,從打開瀏覽器鏈接到服務器開始,到關閉瀏覽器離開服務器結束,被稱爲一個會話。
Session是一個特定的時間概念,指客戶在瀏覽網站時,進入網站到瀏覽器關閉所通過的這段時間,session保存在服務器的內存中,和用戶一一對應。
Session對象是HttpSession類的實例。
Long GetCreateTime() 返回Session建立時間
Public String getID() 返回session建立時JSP引擎爲它設置的惟一ID號
Public Object setAttribute(String name,Object value)使用指定名稱將對象綁到此會話
Public Object getAttribute(String name)返回與此會話中指定名稱定在一塊兒的對象,若是沒有對象綁定在該名稱下,則null。
String[] getValueNames()返回包含此Session種全部可用屬性的數組。
Int getMaxInactiveInterval() 返回兩次請求間隔多長時間此Session被取消(單位秒)瀏覽器
建立:客戶端第一次訪問某個JSP或者servlet時候,服務器會爲當前會話建立一個SessionID,每次客戶端向服務器發送請求的時,都會將sessionID攜帶過去,服務端Sessionid進行校驗。
活動:某會話中經過超級連接打開的新頁面屬於同一會話,當前會話尚未所有關閉,從新打開瀏覽器訪問同一項目資源屬於同一次會話,除非本次會話的全部頁面都關閉後再次從新訪問某個JSP或者servlet將會建立新的會話。
原有會話還存在,只是這個舊的SessionID仍存在服務端,再也沒有客戶端攜帶它而後交於服務器校驗。
Session銷燬
三種方式,session.invalidate()方法;Session過時(超時);服務器從新啓動
Session對象超時
Tomcat默認session超時時間爲30分鐘
Session超時兩種方式
Session.setMaxInactiveInterval(時間秒);
10
Application對象實現了用戶間數據的共享,可存放全局變量,保存應用程序中的公有數據
Application開始於服務器的啓動,終止於服務器的關閉
在用戶的先後鏈接或者是不一樣用戶鏈接中,能夠對application對象同一屬性進行操做
在任何地方對application對象屬性的操做,都影響到其餘用戶對此的操做
服務器的開啓和關閉決定了application對象的生命
Application對象是servletContext類的實例
指定名稱和對象在application中關聯
Public void setAttribute(String name,Object value)指定使用名稱將對象綁定到此會話
Public Object getAttribute(Sring name)返回和名稱綁定的對象,若沒有對象,返回null
Enumeration getAttributeNames()返回全部可用屬性名的枚舉
String setServerInfo()返回JSP(SERVLET)引擎名及版本號
訪問應用程序初始化參數
初始化參數在
<content-param> <param-name>url</param-name> <param-value>jdbc:mysql://127.0.0.1:3306/db_datebase</param-value> <content-param>
使用application.getinitParameter(「url」);訪問參數的值服務器
Page對象就是指向當前JSP頁面自己,有點像類中的this指針,它是java.lang.Object類的實例,page的方法就是Object的方法
Page.toString 當前Page頁面的字符串描述session
Pageconfig對象
Pagecontext對象提供了對JSP頁面全部的對象及名字空間的訪問
Pagecontext對象能夠訪問到本頁所在的session,也能夠取本頁的所在的application某一屬性值
PageContext對象至關於頁面中全部功能的集大成者
PageContext對象的本類名也叫pageContextapp
HttpSession setSession() 返回當前頁面中的HttpSession對象(session)
Void forword(String relativeUrlPath) 使當前頁面重導到另外一頁面
Void include(String relativeUrlPath) 在當前位置包含另外一文件
Config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數和服務器有信息,再講servlet的時候詳細說明。
ServletContext getServletContext() 返回含有服務器相關信息的ServletContext對象對象
String getInitParameter(String name) 返回初始化參數的值
Enumeration getInitParameterNames() 返回Servlet初始化所需全部參數的枚舉
Exception對象是一個異常對象,當一個頁面在運行過程當中發生了異常,就是產生這個對象,若是一個JSP頁面要引用這個對象,就必須在page指令中把isErrorPate設置爲true,不然沒法編譯,它其實是一個java.lang.Throwable的對象,經常使用方法以下: String getMessage() 返回描述異常的消息 String toString() 返回關於異常簡短描述消息