今天我們一起來了解一下關于JSP應用的JSP的隱式對像和MVC設計模式。
首先我們先來說一下JSP的隱式對象:JSP隱式對象是Web容器加載的一組類的實例。它是可以直接在JSP頁面使用的對象。分為4個主要類別:1、 輸入和輸出對象:控制頁面的輸入和輸出(request、response、out)。
2、 作用域通信對象:檢索與JSP頁面的Servlet相關的信息(session、application、pageContext)。
3、 Servlet對象:提供有關頁面環境的信息(page、config)。
4、 錯誤對象:處理頁面中的錯誤(exception)。
我們先了解一下輸入和輸出對象:request對象:request隱式對象表示客戶端的請求,包含了所有的請求信息,常用的方法:voidsetContentType(String name):設置作為響應生成的內容的類型和字符編碼。
void sendRedirect(Stringname):發送一個響應給瀏覽器,指示其應請求另一個URL(會丟失數據,跳轉后不再執行sendRedirect方法下面的代碼。
out對象:在JSP頁面中應使用out隱式對象來向客戶端發送文本形式的實體內容。
out對象是通過調用pageContext對象的getOut方法返回的,其作用和用法與ServletResponse.getWriter方法返回的PrintWriter對象非常相似。
JSP頁面中的out隱式對象的類型為JspWriter,JspWriter相當于一種帶緩存功能的PrintWriter,設置JSP頁面的page指令的buffer屬性可以調整它的緩存大小,甚至關閉它的緩存。
JSP頁面中的out隱式對象相當于插入到ServletResponse.getWriter方法返回的PrintWriter對象前面的緩沖包裝類對象。
只有向out對象中寫入了內容,且滿足如下任何一個條件時,out對象才去調用ServletResponse.getWriter方法,并通過該方法返回的PrintWriter對象將out對象的緩沖區中的內容真正寫入到Servlet引擎提供的緩沖區中:設置page指令的buffer屬性關閉了out對象的緩存功能寫入到out對象中的內容充滿了out對象的緩沖區整個JSP頁面結束作用域通信對象:pageContext對象是javax.servlet.jsp.PageContext類的實例對象,javax.servlet.jsp.PageContext類是javax.servlet.jsp.JspContext的子類。
pageContext對象是通過調用JspFactory.getPageContext方法返回的。
pageContext對象封裝了當前JSP頁面的運行信息,它提供了返回JSP頁面的其他隱式對象的方法。
在JSP頁面中只需將pageContext對象傳遞給某個Java類的實例對象,在該Java對象中就可以訪問和調用其他隱式對象的功能了。
pageContext對象使用戶可以訪問當前頁面作用域中定義的所有隱式對象。
getException()方法返回exception隱式對象getPage()方法返回page隱式對象getRequest()方法返回request隱式對象getResponse()方法返回response隱式對象getServletConfig()方法返回config隱式對象getServletContext()方法返回application隱式對象getSession()方法返回session隱式對象getOut()方法返回out隱式對象PageContext類中定義了一個setAttribute方法來將對象存儲進pageContext對象內部的一個HashMap對象中,同時也定義了一個getAttribute方法來檢索存儲在該HashMap對象中的對象。
void setAttribute(String name, ob ject value) ob ject getAttribute(String name)
(注意:PageContext類除了可以存儲和檢索自身中的屬性對象外,還定義了可以存儲和檢索其他域范圍內的屬性對象的方法。)
在application、session、request、pageContext對象中都可以調用setAttribute方法和getAttribute方法來設置和檢索各自域范圍內的屬性。
存儲在application對象中的屬性可以被同一個WEB應用程序中的所有Servlet和JSP頁面訪問。
新聞熱點
疑難解答