7.動態(tài)頁面技術(shù)(JSP/EL/JSTL)
時間:2023-08-30 02:54:01 | 來源:網(wǎng)站運營
時間:2023-08-30 02:54:01 來源:網(wǎng)站運營
7.動態(tài)頁面技術(shù)(JSP/EL/JSTL):
一、JSP技術(shù)
1.jsp腳本和注釋
jsp腳本:
(1)<% java代碼%> java代碼翻譯到service方法的內(nèi)部
(2)<%=java變量或表達式%>會被翻譯成service方法內(nèi)部out.print()
(3)<%!java代碼%>1) 會被翻譯成servlet的成員的內(nèi)容
jsp注釋: 不同的注釋可見范圍是不同
1)Html注釋:<!--注釋內(nèi)容--> 可見范圍 jsp源碼、翻譯后的servlet、頁面 顯示html源碼
2)java注釋://單行注釋 /*多行注釋*/ --可見范圍 jsp源碼 翻譯后的servlet
3)jsp注釋:<%--注釋內(nèi)容--%> 可見范圍 jsp源碼可見
2.jsp運行原理-----jsp本質(zhì)就是servlet
3.jsp指令(3個)
(1)page指令 --- 屬性最多的指令(實際開發(fā)中page指令默認)
屬性最多的一個指令,根據(jù)不同的屬性,指導(dǎo)整個頁面特性
格式:<%@ page 屬性名1= "屬性值1" 屬性名2= "屬性值2" ...%>
常用屬性如下:
language:jsp腳本中可以 嵌入的語言種類
pageEncoding:當前jsp文件的本身編碼---內(nèi)部可以包含contentType
contentType:response.setContentType(text/html;charset=UTF-8)
session:是否jsp在翻譯時自動創(chuàng)建session
import:導(dǎo)入java的包
errorPage:當當前頁面出錯后跳轉(zhuǎn)到哪個頁面
isErrorPage:當前頁面是一個處理錯誤的頁面
<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset-utf-8" Import="java.util.*" errorPage="/error.jsp" isErrorPage="false" %>
(2)include指令
頁面包含(靜態(tài)包含)指令,可以將一個jsp頁面包含到另一個jsp頁面中
格式:<%@ include file="被包含的文件地址"%>
<%@ include="file.jsp"%>
(3)taglib指令
在jsp頁面引入標簽庫(jstl標簽庫,Struts2標簽庫)
格式:<%@ taglib uri="標簽庫地址 prefix="前綴>" %>
1.jsp內(nèi)置/隱式對象(9個)----- 筆試
jsp被翻譯成servlet之后,service方法中有9個對象定義并初始化完畢,我們在jsp 腳本中可以直接使用這9個對象
out 頁面輸出
request 得到用戶請求信息
response 服務(wù)器向客戶端回應(yīng)信息
config 服務(wù)器配置,可以取得初始化參數(shù)
session 保存用戶信息
application 所有用戶共享信息
page 指當前頁面轉(zhuǎn)換后的Servlet類的實例
pageContextJSP的頁面容器
exception 表示JSP頁面所發(fā)生的異常,在錯誤頁中才起作用
(1)out對象
out的類型:JspWriter
out作用就是想客戶端輸出內(nèi)容----out.write()
out緩沖區(qū)默認8kb 可以設(shè)置成0 代表關(guān)閉out緩沖區(qū) 內(nèi)容直接寫到respons緩沖器
(2)pageContext對象
jsp頁面的上下文對象,作用如下:page對象與pageContext對象不是一回事
1)pageContext是一個域?qū)ο?br>
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)
pageContext可以向指定的其他域中存取數(shù)據(jù)
setAttribute(String name,Object obj,int scope)
getAttribute(String name,int scope)
removeAttrbute(String name,int scope)
findAttribute(String name)---依次從pageContext域,request域,session域,application域中獲 取屬性,在某個域中獲取后將不在向后尋找
四大作用域的總結(jié):
page域:當前jsp頁面范圍
request域:一次請求
session域:一次會話
application域:整個web應(yīng)用
1)可以獲得其他8大隱式對象
例如: pageContext.getRequest()
pageContext.getSession()
5.jsp標簽(動作)(1)頁面包含 : <jsp:include page="包含頁面"/>
(2)請求轉(zhuǎn)發(fā):<jsp:forward page="要轉(zhuǎn)發(fā)的資源"/>
EL技術(shù) 1.EL 表達式概述
EL(Express Lanuage)表達式可以嵌入在jsp頁面內(nèi)部,減少jsp腳本的編寫,EL 出現(xiàn)的目的是要替代jsp頁面中腳本的編寫。
2.EL從域中取出數(shù)據(jù)
EL最主要的作用是獲得四大域中的數(shù)據(jù),格式
${EL表達式}EL獲得pageContext域中的值:$
{pageContextScope.key}EL獲得request域中的值:${request.key}
EL獲取session域中的值:${session.key}
EL獲得application域中的值:$(application.key);
EL從四個域中獲得某個值$(key);
---同樣是依次從pageContext域,request域,session域,application域中 獲取屬性,在某個域中獲取后將不在向后尋找
示例:
1)EL獲得普通字符串
2)EL獲得User對象的值
3)EL獲得List<String>的值
4)EL獲得List<User>的值
5)EL獲得Map<String,String>的值
6)EL獲得Map<String,User>的值
3.EL的內(nèi)置對象
pageScope,requestScope,sessionScope,applicationScope
---- 獲取JSP中域中的數(shù)據(jù)
param,paramValues - 接收參數(shù).
header,headerValues - 獲取請求頭信息
initParam - 獲取全局初始化參數(shù)
cookie - WEB開發(fā)中cookie
pageContext - WEB開發(fā)中的pageContext.
$(pageContext.request.contextPath)
相當于
<%=pageContext.getRequest().getContextPath%>
獲得WEB應(yīng)用的名稱
一、JSTL技術(shù)
1.JSTL概述
JSTL(JSP Standard Tag Library),JSP標準標簽庫,可以嵌入在jsp頁面中使用標簽的形式完成業(yè)務(wù)邏輯等功能。jstl出現(xiàn)的目的同el一樣也是要提到j(luò)sp頁面中的腳本代碼。JSTL標準標準標簽庫有5個子庫,但隨著發(fā)展,目前常使用的是他的核心庫
標簽庫標簽庫的URI前綴1.JSTL下載與導(dǎo)入
從Apache的網(wǎng)站下載JSTL的JAR包。進入 “
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網(wǎng)址下載 JSTL的安裝包。jakarta-taglibs-standard-1.1.2.zip,然后將下載好的JSTL安裝包 進行解壓,此時,在lib目錄下可以看到兩個JAR文件,分別為jstl.jar和standard.jar。 其中,jstl.jar文件包含JSTL規(guī)范中定義的接口和相關(guān)類,standard.jar文件包含用于 實現(xiàn)JSTL的.class文件以及JSTL中5個標簽庫描述符文件(TLD)
1.JSTL核心庫的常用標簽
1)<c:if>標簽
2)<c:for>標簽
關(guān)鍵詞:技術(shù),動態(tài)