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域