JSP的技術 JavaBean規範(封裝數據) EL的表達式 學習筆記

JSP的技術 JavaBean規範(封裝數據) EL的表達式

JSP技術簡介java

1.JSP -- Java Server Pages (java 服務器端的網頁們)
2.JSP編寫HTML代碼 + Java代碼 + JSP的代碼 它不用配置
3.JSP的執行原理:JSP編寫完代碼,第一次訪問的時候,把JSP的文件翻譯成.java的文件 -- 編譯成.class的文件 -- 執行。
4.編寫JSP的腳本元素(想編寫java代碼)
    * <%! %>    成員變量 方法
    * <%= %>    輸出內容(常量或者變量),不能加分號
    * <%  %>    定義變量(局部變量),編寫語句,不能編寫方法。

5.JSP和Servlet程序在開發中的角色
    * JSP   modle1的時代
    * JSP(收集用戶輸入的數據,顯示數據給用戶) + Servlet(接收和響應請求)

JSP的註釋web

1.HTML的註釋           <!-- -->
2.Java的註釋           // /**/  /***/
3.JSP本身的註釋      <%-- JSP的註釋  --%>

JSP的指令(3個指令元素)數組

1.設置JSP的文件的屬性。
2.指揮JSP文件怎麼來執行。

page指令瀏覽器

1.經過page指令設置JSP文件的屬性
2.page語法怎麼寫:<%@ page 屬性名稱=屬性值 屬性名稱=屬性值 %>   一個頁面上,page指令也能夠出現。
3.page指令的屬性有哪些?
    * language      -- 默認翻譯成什麼語言?如今只能翻譯java。
    * extends       -- 繼承。(一個jsp的文件翻譯.java的文件,默認繼承一個類)
    * session       -- 默認是true,說明能夠直接使用session。
    * import        -- 導入包。而且import能夠出現屢次。其餘屬性只能出現一次。
    * buffer        -- 設置輸出緩衝區的大小默認是8kb
    * autoflush     -- 若是緩衝區滿了,是否自動刷新。若是滿了不自動刷新,拋出異常了。
    * errorPage     -- 程序拋出了異常,直接把異常拋到頁面上。指定錯誤的處理頁面。
    * isErrorPage   -- 須要在錯誤的頁面使用。決定直接可使用exception
    * isELIgnored   -- 是否忽略EL表達式。默認值是false,表明不忽略。在頁面上直接使用EL表達式。
    * pageEncoding  -- 設置當前頁面的編碼。JSP的文件翻譯成.java文件。
    * ContentType   -- 瀏覽器默認打開文件的編碼。

    * 注意:pageEncoding和ContentType關係曖昧。若是一個頁面上只設置pageEncoding,ContentType默認狀況下和pageEncoding相同。

在web.xml中配置全局錯誤頁面服務器

<error-page>
    <error-code>404</error-code>
    <location>/error/404.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error/500.jsp</location>
</error-page>

include指令cookie

1.include指令:能夠用於頁面包含。把幾個頁面放在一塊兒對外顯示。完成頁面的佈局。
2.指令的語法:<%@ include file="包含文件的地址" %>
3.模擬一個門戶網站
4.靜態包含:原理
    * 在翻譯成.java文件以前,先把全部的頁面的內容所有都複製過來,一塊兒翻譯成一個.java文件。一塊兒編譯.class文件。

JSP的內置對象session

1.概念:這些內置對象能夠直接使用。exception對象,page指令有一個屬性,isErrorPage設置true才能使用exception對象。
2.內置對象
    request                 HttpServletRequest                  
    response                HttpServletResponse
    session                 HttpSession
    application             ServletContext
    out                     JspWriter
    pageContext             PageContext
    page                    Object(表明當前對象)
    config                  ServletConfig
    exception               Throwable

3.out對象,真實的對象JspWriter,能夠向頁面輸出內容。   PrintWriter response.getWriter();這倆對象之間的聯繫?
    <%= "HELLO" %>
    <% out.print("AAAA"); %>
    <% response.getWriter().print("BBBB"); %>
    <% out.print("CCCC"); %>

    * 輸出的結果是:BBBB HELLO AAAA CCC

pageContext對象app

1.這一個對象頂9個。能夠獲取另外的8個對象。
2.域對象:表明當前的頁面的域。
3.向其餘的域對象中存取值。

4.pageContext對象的API
    * setAttribute(String name, Object value) 
    * setAttribute(String name, Object value, int scope) 

    * Object getAttribute(String name)  
    * Object getAttribute(String name, int scope)  

    * Object findAttribute(String name)         全域查找,默認從最小的域中找值,若是找不到,上一個域中找。

5.做用
    * 編寫框架的時候
    * 自定義標籤
    * 編寫通用性較高的代碼。

JSP的動做標籤框架

1.<jsp:forward>         轉發的功能
    * page屬性:轉發到哪一個頁面上去啊!!
    * 轉發的路徑:服務器絕對路徑(不包含包含項目名稱)
2.<jsp:param>           轉發的時候能夠傳遞參數
    * 在轉發中使用屬性 放在<jsp:forward>標籤的中間
    * name  :參數的名稱
    * value :參數的值

3.<jsp:include>         動態包含(和靜態包含結果是同樣的,原理是不同的)
    * page屬性:包含的頁面的路徑
    * 在源碼的文件下,生成了4個.java和.class的文件。

JavaBean的規範(封裝數據) 工具類jsp

1.JavaBean:就是一個普通的java類,可是符合JavaBean規範。
2.JavaBean規範
    * 這個java類必須有無參數的構造方法。
    * 屬性私有化。
    * 提供了public get和set方法。get或者set只要有一個就行。
3.JavaBean的做用:封裝數據。
4.JavaBean的屬性:是由get或者set方法來決定的。

5.JSP文件完成封裝數據。
    * <jsp:useBean>標籤:用於在JSP頁面中查找或實例化一個JavaBean組件。
    * <jsp:setProperty>標籤:用於在JSP頁面中設置一個JavaBean組件的屬性。
    * <jsp:getProperty>標籤:用於在JSP頁面中獲取一個JavaBean組件的屬性

6.Servlet裏面使用JavaBean封裝數據

內省的技術(瞭解)

1.經過內省的技術能夠來操做JavaBean的屬性的讀寫方法。
2.Introspector  

BeanUtils(學會)

1.若是使用BeanUtils工具類,須要先導入兩個jar包。  commons-beanutils-1.8.3.jar    commons-logging-1.1.1.jar
2.編寫代碼。(字符串轉換日期類型的代碼)
    * 第一步:須要編寫類,實現Converter接口,重寫一個方法(字符串轉換成日期)。
    * 第二步:使用ConvertUtils.register()註冊的操做。
        *  static void  register(Converter converter, Class clazz)
        *  converter    傳入本身編寫實現類
        *  clazz        轉換的數據的類型    Date.class
        *  注意:註冊的方法放在封裝數據以前。

3.會封裝數據(BeanUtils工具的使用)     
4.會轉換(日期類型的數據的轉換)

EL表達式(重點)

1.JSP內置的一種表達語言。
2.做用:
    * 從域對象中獲取屬性的值。(request.setAttribute("xx","yy")  )
    * 執行運算
    * 提供了一些經常使用WEB對象(例子:cookie)
    * 調用Java的方法
3.語法:${ 表達式內容 }
4.注意事項:
    * page指令:是否忽略EL表達式。若是忽略了,JSP上就不能使用EL表達式。(isELIgnor

EL表達式獲取域對象中的屬性值

1.若是域對象中屬性的名稱有相同的,使用EL表達式默認從最小的域中取值。
2.list和數組使用下標值取值    ${ list[0] }
3.若是是map集合或者對象 ${ map.aaa }
    * 若是Map集合的key是特殊字符的話,使用${map["ccc.ddd"]}

EL的經常使用的對象

1.pageScope                 page域
2.requestScope              request域
3.sessionScope              session域
4.applicationScope          application域
相關文章
相關標籤/搜索