JSP-JSP內建對象

來源:互聯網
上載者:User

標籤:多少   瞭解   cti   服務端   wait   高效   通過   需求   blog   

 

內建對象簡介

1、JSP內建對象是Web容器建立的一組對象,【不使用new關鍵字】就可以使用的內建對象。例如:out

2、JSP九大內建對象:

  5個常用對象: out(輸出),request(請求),response(響應),session(回話),application(應用)   

  4個不常用: page pageContent exception config

Web程式的請求響應模式:

使用者發送請求(request)
伺服器給使用者響應(response)

 

一、什麼是緩衝區1、緩衝區:Buffer,所謂緩衝區就是記憶體的一塊地區,用來儲存臨時資料2、IO輸出最原始的就是一個位元組一個位元組輸出,效率很低。緩衝區可以先將多個位元組讀出來,再一次性的輸出,提高效率二、out對象1、out對象是JspWriter類的執行個體,是向用戶端(這裡指瀏覽器)輸出內容的常用對象。2、常用方法:· void println()向用戶端列印字元· void clear()清除緩衝區的內容。如果在flush之後調用,會拋出異常· void clearBuffer() 也是清除緩衝區內容,但在flush之後不會拋出異常· void flush()將緩衝區內容輸出到用戶端· int getBufferSize()返回緩衝區的大小(位元組數),如不設緩衝區則為0· int getRemaining()返回緩衝區還剩餘多少可用· boolean isAutoFlush()返回緩衝區滿時,是否自動清空緩衝區· void close()關閉輸出資料流

表單有兩種提交方式:get與post。
定義在<form action="dologin.jsp" name="loginForm" method="提交方式***"></form>1.get:以【明文】方式,通過URL提交資料,資料在URL中【可以看到】。提交資料最多不超過【2KB】。安全性較低,但效率比post方式高。適合提交資料量不大,且安全要求不高的資料:比如:搜尋、查詢等功能。2.post:將使用者提交的資訊封裝在HTML HEADER內。適合提交資料量大,安全性高的使用者資訊。如:註冊、修改、上傳等功能。
request對象(1)內容:用戶端的請求資訊被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的執行個體。request對象具有請求域,即完成用戶端的請求之前,該對象一直有效。(2)方法: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地址
request.setCharacterEncoding("utf-8");//解決中文亂碼問題,無法解決URL傳遞中文出現的亂碼問題。
response.setContentType("text/html;charset=utf-8");//設定響應的MIMI類型
RrintWriter outer = response.getWriter(); //獲得輸出資料流對象
//response的PrintWriter 對象輸出優先於 JSP內建out對象(PrintWriter 是Java IO包的),解決辦法 out對象調用flush()方法。這樣就會保證out對象輸出在PrintWriter前
response.sendRedirect("index.jsp");//請求重新導向

請求轉寄與請求重新導向的區別一、請求重新導向:
服務端responce.sendRedirect("xx.jsp")重新導向。
【用戶端行為】:即用戶端會訪問兩次,第一次訪問後會立即跳轉到第二個重新導向頁面上,【從本質上講等於兩次請求】,而前一次的請求封裝的request對象不會儲存,地址欄的URL地址會改變。二、請求轉寄:
服務端request.getRequestDispatcher("xx.jsp").forward(request,response)請求轉寄。
forward(request,response)用於儲存內建對象request和response。【伺服器行為】:伺服器會代替用戶端去訪問轉寄頁面,【從本質是一次請求】,轉寄後請求對象會儲存,地址欄的URL地址不會改變。

 


什麼是session1、session表示用戶端與伺服器的一次會話2、Web中的session指:使用者在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是使用者瀏覽網站所花費的時間。3、從上述定義中可以看到,session實際是一個【特定的時間概念】4、伺服器的記憶體中,儲存著同使用者的session。

 

(1)session是JSP的一個內建對象,是HttpSession類的執行個體。(2)從客戶開啟瀏覽器並串連到伺服器開始,到客戶關閉瀏覽器視窗斷開與伺服器的串連,這一過程成為一個會話。(3)當客戶在同一個網站的不同頁面之間進行切換並訪問時,伺服器是通過session來判斷這些請求是否來自同一個客戶。(4)session一般有時間限制,長時間不操作可能會導致session失效。session失效後原session中儲存的屬性值會全部丟失。(5)setMaxInactiveInterval(int i)  該方法可直接設定session的存留時間,超過該時間session會重新建立。(單位:秒)-------------------------------session對象的常用方法有:long getCreationTime() : 返回session的建立時間;public String getId() : 返回session的唯一ID號(該ID在session產生時,由JSP引擎建立)public Object setAttribute(String name,Object value) : 按照索引值對的方式在該session會話中儲存一個屬性(該屬性是一個物件類型)public Object getAttribute(String name) : 返回指定名稱的屬性的值(如果該名稱的屬性不存在,則返回null)String[] getValueNames() : 返回一個(包含在此session中所有可用屬性)的數組。int getMaxInactiveInterval() : 返回一個時間,該時間表示當前session間隔多少時間之後會失效(單位:秒)。

session的生命週期1.建立:
當用戶端第一次訪問某個jsp或者servlet時候,伺服器會為當前會話建立一個SessionId,每次用戶端向伺服器發送請求時,都會將此SessionId攜帶過去,服務端會對此SessionId進行校正2.活動:①某次會話當中通過超連結開啟的新頁面屬於同一次會話②只要當前會話頁面沒有全部關閉,重新開啟的瀏覽器視窗訪問同一個項目資源時屬於同一次會話③除非本次會話的所有頁面都關閉後在重新訪問某個JSP或者servlet將會建立新的會話注意:注意原有會話還存在,只是這箇舊的Session仍然存在於服務端,只不過再也沒有用戶端會攜帶它然後交予服務端校正3.銷毀:三種方式①調用了session.invalidate()方法②Session到期(逾時)③伺服器重新啟動

Tomcat預設session逾時時間為30分鐘。1、session.setMaxInactiveInterval(時間);//單位是秒2、<session-config>  <session-timeout>    10 //單位為分鐘  </session-timeout> </session-config>

application對象:  1、application對象實現了使用者間資料的共用,可存放全域變數;在Javase中相當於全域變數  2、application開始於伺服器的啟動,終止於伺服器的關閉。  3、在使用者的前後串連或不同使用者之間的串連中,可以對application對象的同一屬性進行操作。  4、在任何地方對application對象屬性的操作,都將影響到其他使用者對此的訪問。  5、伺服器的啟動和關閉決定了application對象的生命。  6、application對象是ServletContext類的執行個體。常用方法:  1、public void setAttribute(String name,Object value)使用指定名稱將對象綁定到此會話。  2、public Object getAttribute(String name)返回於此會話中指定名稱綁定在一起的對象,如果沒有對象綁定在該名稱下,則返回null。  3、Enumeration getAttributeName()返回所有可用屬性名稱的枚舉。  4、String getServerInfo()返回jsp(servlet)引擎名及版本號碼。

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 copy(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()使一個線程處於等待直到被喚醒。

pageContext對象(1)pageContext對象提供了對JSP頁面中所有對象及名字空間的訪問操作(2)pageContext對象可以訪問本頁面的session,可以訪問本頁面的application對象的任意屬性值(3)pageContext對象是某個頁面中所有功能的集大成者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)void setAttribute(Strign name, Object attribute) 設定屬性及屬性值(7)Object getAttribute(String name ,int scope) 在指定範圍內取屬性值(8)int getAttributeScope(String name) 返回某屬性的作用範圍(9)void forward(String relativeUrlPath) 使當前頁面跳轉到另外一個頁面(伺服器轉寄)(10)void include(String relativeUrlPath) 在當前位置包含另一個檔案
Config對象javax.servlet.ServletConfig 類的執行個體。這個對象允許開發人員訪問Servlet或者JSP引擎的初始化參數,比如檔案路徑等。
config對象 常用方法: 
ServletContext getServletContext()返回含有伺服器相關資訊的ServletContext對象String getInitParameter(String name)返回初始化參數的值Enumeration getInitParameterNames()返回Servlet初始化所需所有參數的枚舉

1.需要捕獲異常的頁面,在page指令中寫屬性errorpage=“出錯跳轉到的頁面”2.在跳轉到的錯誤處理頁面page指令中輸入屬性isErrorPage=“true”JSP內建對象 - Exception(1)Exception是java.lang.Throwable類的執行個體(2)當一個頁面運行發生了異常,就產生了該Exception對象。(3)若一個JSP頁面要使用該Exception對象,需要將isErrorPage的值設為true--------------------------------------Exception對象常用方法:(1)String getMessage() 返回描述異常的資訊(2)String toString() 返回關於異常的簡短描述資訊(3)void printStackTrace() 顯示異常及其棧軌跡(4)Throwable FillInStackTrace() 重寫異常的執行棧軌跡


http://www.imooc.com/video/3604

JSP-JSP內建對象

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.