国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP隱式對象和MVC設計模式

2024-09-05 00:17:56
字體:
來源:轉載
供稿:網友

 今天我們一起來了解一下關于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頁面訪問。

  存儲在session對象中的屬性可以被屬于同一個會話的所有Servlet和JSP頁面訪問。

  存儲在request對象中的屬性可以被屬于同一個請求的所有Servlet和JSP頁面訪問,例如使用PageContext.forward和PageContext.include方法連接起來的多個Servlet和JSP頁面。

  存儲在pageContext對象中的屬性僅可以被當前JSP頁面的當前響應過程中調用的各個組件訪問,例如,正在響應當前請求的JSP頁面和它調用的各個自定義標簽類。

  PageContext類中還提供了對各個域范圍的屬性進行統一管理的方法,以簡化對各個域范圍內的屬性的訪問。

  public void setAttribute(java.lang.String name,java.lang.ob ject value,int scope) public java.lang.ob ject getAttribute(String name,int scope)

 

  其中參數scope的取值為:PageContext.APPLICATION_SCOPE PageContext.SESSION_SCOPE PageContext.REQUEST_SCOPE PageContext.PAGE_SCOPE publicvoid removeAttribute(String name)

  publicvoid removeAttribute(String name,int scope)

  getAttributeNamesInScope方法findAttribute方法PageContext類中定義了一個forward方 法和兩個include方法來分別簡化和替代RequestDispatcher.forward方法和 RequestDispatcher.include方法的調用:public void forward(java.lang.String relativeUrlPath)throwsjavax.servlet.ServletException,java.io.IOException public voidinclude(java.lang.String relativeUrlPath)

 

  throwsjavax.servlet.ServletException,java.io.IOException public void include(java.lang.String relativeUrlPath,boolean flush)throws javax.servlet.ServletException,java.io.IOException傳遞給這些方法的資源路徑都只能是相對路徑,如 果路徑以“/”開頭,表示相對于當前WEB應用程序的根目錄,否則,表示相對于當前JSP所映射到的訪問路徑。

 

  session對象session對象表示用戶的會話狀況,用此項機制可以輕易識別每一個用戶,能保存和跟蹤用戶的會話狀態。session對象最常用的方法:void setAttribute(String name, ob ject value)

  void getAttribute(String name)

  application對象application對象作用于整個應用程序,所有的客戶端窗口都可以共享該對象,從服務器開始就存在,直到服務器關閉為止。application對象最常用的方法:void setAttribute(String name, ob ject value):以名稱/值的方式,將一個對象的值存放到application中(存的值的類型為ob ject)。

 

  void getAttribute(String name):根據名稱去獲取application中存放對象的值(獲取的值的類型為ob ject)。

  設置context初始參數。在web.xm l文件適當的位置增加內容:

  <context-param> <param-name>website</param-name> <param-value>www.sohu.com</param-value> </context-param>

  在JSP頁面中,使用applicatin對象的getInitParameter()方法可以取得 website參數對應的參數值。在Servlet中用ServletContext對象的同名方法獲得參數值。

 

  使用log()方法記錄日志。

  可以使用application對象提供的log()方法,實現日志記錄功能,在Tomcat服務器中,記錄的日志都保存在Tomcat根目錄的logs目錄下。日志內容分成不同文件進行記錄。

  Servlet對象:page對象page對象提供對網頁上定義的所有對象的訪問。page對象表示頁面本身,它是java.lang.ob ject類的一個實例。

共2頁上一頁12下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河南省| 涟水县| 五寨县| 和硕县| 松江区| 太康县| 四子王旗| 庄浪县| 江口县| 常州市| 泸溪县| 嘉义市| 金寨县| 班戈县| 青海省| 玉林市| 剑川县| 新乐市| 深水埗区| 平潭县| 蒙自县| 连州市| 石首市| 济宁市| 绥化市| 浪卡子县| 大丰市| 道孚县| 藁城市| 株洲县| 乌兰县| 安丘市| 蓬莱市| 毕节市| 五莲县| 汪清县| 鲁甸县| 蒙山县| 隆子县| 平乡县| 邵阳县|