Welcome to Yumao′s Blog.
Hello JSP Day05
, 2012年05月05日 , Java Language , 评论 在〈Hello JSP Day05〉中留言功能已關閉 ,

一、jsp基礎
1、什麼是jsp?
2、如何寫一個jsp文件?
1)寫一個以.jsp為後綴的文件
2)添加如下的組成元素:
a, html(html,css,javascript)
b, java代碼:

			方式一  java代碼片斷:
			<%    %>
			方式二  jsp表達式:
			<%=  %>
			方式三  jsp聲明
			<%!   %>
		c, 使用隱含對象
			即在jsp文件里直接使用的對象。
			out
			request
			response
			session
			application
			pageContext: PageContext類的實例,容器會
			為每一個jsp實例創建唯一的一個pageContext
			實例。主要有兩個作用:
				作用1,綁訂數據
						setAttribute,getAttribute,removeAttribute
						注意,某個jsp實例綁訂數據到pageContext
						上,只有它自己能訪問。
				作用2, 找到其它隱含對象。
			config: ServletConfig實例
			exception: 獲取jsp出錯信息。
				比如,某個jsp文件(比如jsp05.jsp)有
				運行過程當中,有可能出錯,則可以
				採用如下方式來處理:
					step1,在jsp05.jsp文件當中,使用
					<%@page errorPage="error.jsp"%>
					指定一個錯誤處理頁面(error.jsp)。
					step2,在error.jsp文件當中,使用
					<%@page isErrorPage="true"%>,
					然後使用exception.getMessage方法
					輸出錯誤信息。
			page: 相當於this,指向了jsp實例本身
			d,指令: 通知容器,在將.jsp文件轉換成
			對應的.java文件時,做一些額外的處理。
				page指令
					import
					pageEncoding
					contentType
					isErrorPage: true/false,為true時,可以
					使用exception隱含對象。
					errorPage: 值是一個jsp文件,用來指定
					錯誤處理頁面。
					 isELIgnored: true/false,為true時,表示
					 忽略el表達式。
				include指令
					file
				taglib指令: 引入jsp標籤
					uri:指定一個命名空間
					prefix:命名空間的前綴
			e, 活動元素(Action Element): jsp已經運行了,
			通知容器做一些處理。
				A.:
					轉發,page指定轉發的目的地地址。
				B.
					jsp在運行過程當中,調用另外一個jsp,
					然後將二者的輸出內容合併。
					page指定要調用的jsp文件。
				C.
					傳參,其中name指定參數名,value指
					定參數值。
				D.
					從scope指定的範圍(可以是page,request,
					session,	application)中查找id指定的對象是
					否存在(執行類似 request.getAttribute)。
					如果存在,則什麼都不做,如果不存在,
					則創建相應的對象並且綁訂。
				   
				   	依據name指定的名稱查找到對應的對象,
				   	並且調用相應的get方法。
				   
				   依據name指定的名稱查找到對應的對象,
				   並且調用相應的set方法。
			f,注釋
			
			注釋中的代碼會執行,但不會在頁面上輸出。
		    <%--xxxx--%>
			注釋中的代碼不會執行,也不會在頁面上輸出。

	3、jsp是如何執行的?
		step1 .jsp文件轉換成對應的servlet。
			a, html    ---- > service方法里,使用out.write輸出。
			b, <%  %> -----> service方法里,照搬。
			c, <%= %> -----> service方法里,使用out.print輸出。
			d, <%!  %> -----> 作為屬性或者方法。

二、jstl標籤及el表達式
	1、jstl是什麼?
	java standard taglib(java標準標籤庫)
	a,什麼是標籤?
		sun公司制訂的一種技術規範,可以將jsp
	文件中的java代碼使用相應的標籤來替換。
	這樣做的好處是:jsp文件當中,不再有任何的
	java代碼,jsp文件會變得簡潔,並且維護方便。
	b, 什麼是jstl?
		apache開發的一套通用的標籤庫,捐獻給了
	sun,稱之為jstl。
	c,el表達式是什麼?
		sun公司開發的一套簡單的計算規則,用於
	給標籤的屬性賦值。新的版本當中,也允許直接
	使用el表達式,即直接輸出el表達式的結果。
	2、el表達式的使用
		1)訪問bean(java對象)的屬性
			方式一:  ${user.name}
			容器會依次從pageContext,request,
			session,application中查找綁訂名為
			"user"的對象,然後調用該對象的
			getName方法,最後輸出該方法的處理結果。
			使用表達式有兩個優點:
				a, 會將null轉換成""輸出。
				b, 依據綁訂名找不到對象,會輸出""。
			指定查找範圍:
				${sessionScope.user.name}
			pageScope,requestScope,applicationScope
			方式二: ${user["name"]}
			也可以使用${user[變量]},該變量需要事先綁訂。
			也允許[下標]來訪問數組的某個元素。下標從
			0開始。
		2)獲取表單中的參數值
			a,  ${param.username} :
			相當於request.getParameter("username");
			b, ${paramValues.interest}:
			相當於request.getParameterValues("interest");
		3) 計算表達式的值,直接輸出
			a,算術運算: +,-,*,/,%。"+"號操作不能連接兩個
			字符串。
			b,關係運算: >,<,>=,<=,==,!=
			c,邏輯運算: ||, &&,!
			d,empty運算: 判斷一個字符串是否為空字符串
			或者一個集合內部是否沒有任何的元素。
				情況一: 空字符串
				情況二:集合沒有任何的元素
				情況三:值為null。
				情況四:找不到對應的對象。
		4)	計算表達式的值,給標籤的屬性賦值。
	3、jstl中的核心標籤
		1)使用步驟:
			step1:
			將jstl.jar,standard.jar 拷貝到WEB-INFlib
			下。
			D:czhMyEclipse 5.5.1 GA
			eclipse
			plugins
			com.genuitec.eclipse.j2eedt.core_5.5.1
			data
			libraryset
			JSTL1.1
			lib
		step2 在jsp文件內部,使用
		<%@taglib prefix="" uri=""%>
		2)常用標籤
			
				當test屬性值為true,執行標籤體的內容。
			test屬性值使用el表達式來賦值。
			var屬性指定綁訂名。
			scope屬性指定綁訂的範圍。
			  
			
			對集合進行遍歷。
				var屬性指定綁訂名,綁訂範圍是pageContext。
				items屬性指定要遍歷的集合,一般使用
				el表達式來賦值。
				varStatus屬性指定一個綁訂名,該綁訂名
				對應了一個封裝了當前遍歷情況的對象。
				比如:
					index:下標從0開始,當前遍歷的那個對象的
					下標。
					count:下標從1開始,表示是第幾次遍歷。
			練習:
				將僱員列表對應的jsp文件中的java代碼
				使用標籤來代替。

JSP_Day05.tar.gz
课堂内容

关键字:, , ,

评论已关闭