摘要:出現(xiàn)的目的同一樣也是要提到頁(yè)面中的腳本代碼。標(biāo)準(zhǔn)標(biāo)準(zhǔn)標(biāo)簽庫(kù)有個(gè)子庫(kù),但隨著發(fā)展,目前常使用的是他的核心庫(kù)標(biāo)簽庫(kù)標(biāo)簽庫(kù)的前綴下載與導(dǎo)入下載從的網(wǎng)站下載的包。
一、JSP技術(shù)
1.jsp腳本和注釋
jsp腳本:
1)<%java代碼%> ----- 內(nèi)部的java代碼翻譯到service方法的內(nèi)部
2)<%=java變量或表達(dá)式> ----- 會(huì)被翻譯成service方法內(nèi)部out.print()
3)<%!java代碼%> ---- 會(huì)被翻譯成servlet的成員的內(nèi)容
jsp注釋: 不同的注釋可見(jiàn)范圍是不同
1)Html注釋: ---可見(jiàn)范圍 jsp源碼、翻譯后的servlet、頁(yè)面 顯示html源碼
2)java注釋://單行注釋 /多行注釋/ --可見(jiàn)范圍 jsp源碼 翻譯后的servlet
3)jsp注釋:<%--注釋內(nèi)容--%> ----- 可見(jiàn)范圍 jsp源碼可見(jiàn)
2.jsp運(yùn)行原理-----jsp本質(zhì)就是servlet(面試)
jsp在第一次被訪問(wèn)時(shí)會(huì)被Web容器翻譯成servlet,在執(zhí)行
過(guò)程:
第一次訪問(wèn)---->helloServlet.jsp---->helloServlet_jsp.java---->編譯運(yùn)行
PS:被翻譯后的servlet在Tomcat的work目錄中可以找到
3.jsp指令(3個(gè))
jsp的指令是指導(dǎo)jsp翻譯和運(yùn)行的命令,jsp包括三大指令:
1)page指令 --- 屬性最多的指令(實(shí)際開(kāi)發(fā)中page指令默認(rèn))
屬性最多的一個(gè)指令,根據(jù)不同的屬性,指導(dǎo)整個(gè)頁(yè)面特性
格式:<%@ page 屬性名1= "屬性值1" 屬性名2= "屬性值2" ...%>
常用屬性如下:
language:jsp腳本中可以嵌入的語(yǔ)言種類
pageEncoding:當(dāng)前jsp文件的本身編碼---內(nèi)部可以包含contentType
contentType:response.setContentType(text/html;charset=UTF-8)
session:是否jsp在翻譯時(shí)自動(dòng)創(chuàng)建session
import:導(dǎo)入java的包
errorPage:當(dāng)當(dāng)前頁(yè)面出錯(cuò)后跳轉(zhuǎn)到哪個(gè)頁(yè)面
isErrorPage:當(dāng)前頁(yè)面是一個(gè)處理錯(cuò)誤的頁(yè)面
2)include指令
頁(yè)面包含(靜態(tài)包含)指令,可以將一個(gè)jsp頁(yè)面包含到另一個(gè)jsp頁(yè)面中
格式:<%@ include file="被包含的文件地址"%>
3)taglib指令
在jsp頁(yè)面中引入標(biāo)簽庫(kù)(jstl標(biāo)簽庫(kù)、struts2標(biāo)簽庫(kù))
格式:<%@ taglib uri="標(biāo)簽庫(kù)地址" prefix="前綴"%>
4.jsp內(nèi)置/隱式對(duì)象(9個(gè))----- 筆試
jsp被翻譯成servlet之后,service方法中有9個(gè)對(duì)象定義并初始化完畢,我們?cè)趈sp 腳本中可以直接使用這9個(gè)對(duì)象
名稱 類型 描述
out javax.servlet.jsp.JspWriter 用于頁(yè)面輸出
request javax.servlet.http.HttpServletRequest 得到用戶請(qǐng)求信息,
response javax.servlet.http.HttpServletResponse 服務(wù)器向客戶端的回應(yīng)信息
config javax.servlet.ServletConfig 服務(wù)器配置,可以取得初始化參數(shù)
session javax.servlet.http.HttpSession 用來(lái)保存用戶的信息
application javax.servlet.ServletContext 所有用戶的共享信息
page java.lang.Object 指當(dāng)前頁(yè)面轉(zhuǎn)換后的Servlet類的實(shí)例
pageContext javax.servlet.jsp.PageContext JSP的頁(yè)面容器
exception java.lang.Throwable 表示JSP頁(yè)面所發(fā)生的異常,在錯(cuò)誤頁(yè)中才起作用
(1)out對(duì)象
out的類型:JspWriter
out作用就是想客戶端輸出內(nèi)容----out.write()
out緩沖區(qū)默認(rèn)8kb 可以設(shè)置成0 代表關(guān)閉out緩沖區(qū) 內(nèi)容直接寫(xiě)到respons緩沖 器
(2)pageContext對(duì)象
jsp頁(yè)面的上下文對(duì)象,作用如下:
page對(duì)象與pageContext對(duì)象不是一回事
1)pageContext是一個(gè)域?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域中獲 取屬性,在某個(gè)域中獲取后將不在向后尋找
四大作用域的總結(jié):
page域:當(dāng)前jsp頁(yè)面范圍
request域:一次請(qǐng)求
session域:一次會(huì)話
application域:整個(gè)web應(yīng)用
2)可以獲得其他8大隱式對(duì)象
例如: pageContext.getRequest()
pageContext.getSession()
5.jsp標(biāo)簽(動(dòng)作)
1)頁(yè)面包含(動(dòng)態(tài)包含):
2)請(qǐng)求轉(zhuǎn)發(fā):
靜態(tài)包含與動(dòng)態(tài)包含的區(qū)別?
二、EL技術(shù)
1.EL 表達(dá)式概述
EL(Express Lanuage)表達(dá)式可以嵌入在jsp頁(yè)面內(nèi)部,減少jsp腳本的編寫(xiě),EL 出現(xiàn)的目的是要替代jsp頁(yè)面中腳本的編寫(xiě)。
2.EL從域中取出數(shù)據(jù)
EL最主要的作用是獲得四大域中的數(shù)據(jù),格式${EL表達(dá)式}
EL獲得pageContext域中的值:$(pageContextScope.key);
EL獲得request域中的值:$(request.key);
EL獲得session域中的值:$(session.key);
EL獲得application域中的值:$(application.key);
EL從四個(gè)域中獲得某個(gè)值$(key);
---同樣是依次從pageContext域,request域,session域,application域中 獲取屬性,在某個(gè)域中獲取后將不在向后尋找
示例:
1)EL獲得普通字符串
2)EL獲得User對(duì)象的值
3)EL獲得List
4)EL獲得List
5)EL獲得Map
6)EL獲得Map
3.EL的內(nèi)置對(duì)象
pageScope,requestScope,sessionScope,applicationScope
---- 獲取JSP中域中的數(shù)據(jù)
param,paramValues - 接收參數(shù).
header,headerValues - 獲取請(qǐng)求頭信息
initParam - 獲取全局初始化參數(shù)
cookie - WEB開(kāi)發(fā)中cookie
pageContext - WEB開(kāi)發(fā)中的pageContext.
$(pageContext.request.contextPath)
相當(dāng)于
<%=pageContext.getRequest().getContextPath%>
獲得WEB應(yīng)用的名稱
三、JSTL技術(shù)
1.JSTL概述
JSTL(JSP Standard Tag Library),JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù),可以嵌入在jsp頁(yè)面中使用標(biāo)簽的形式完成業(yè)務(wù)邏輯等功能。jstl出現(xiàn)的目的同el一樣也是要提到j(luò)sp頁(yè)面中的腳本代碼。JSTL標(biāo)準(zhǔn)標(biāo)準(zhǔn)標(biāo)簽庫(kù)有5個(gè)子庫(kù),但隨著發(fā)展,目前常使用的是他的核心庫(kù)
標(biāo)簽庫(kù) 標(biāo)簽庫(kù)的URI 前綴
Core http://java.sun.com/jsp/jstl/... c
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/... fn
2.JSTL下載與導(dǎo)入
JSTL下載:
從Apache的網(wǎng)站下載JSTL的JAR包。進(jìn)入 “http://archive.apache.org/dis...”網(wǎng)址下載 JSTL的安裝包。jakarta-taglibs-standard-1.1.2.zip,然后將下載好的JSTL安裝包 進(jìn)行解壓,此時(shí),在lib目錄下可以看到兩個(gè)JAR文件,分別為jstl.jar和standard.jar。 其中,jstl.jar文件包含JSTL規(guī)范中定義的接口和相關(guān)類,standard.jar文件包含用于 實(shí)現(xiàn)JSTL的.class文件以及JSTL中5個(gè)標(biāo)簽庫(kù)描述符文件(TLD)
將兩個(gè)jar包導(dǎo)入我們工程的lib中
3.JSTL核心庫(kù)的常用標(biāo)簽
1)
2)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72090.html
摘要:經(jīng)常有讀者在公眾號(hào)上問(wèn)亂碼的問(wèn)題,昨天又有一個(gè)小伙伴問(wèn)及此事,其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單,但是想要說(shuō)清楚卻并不容易,因?yàn)槊總€(gè)人亂碼的原因都不一樣,給每位小伙伴都把亂碼的原因講一遍也挺費(fèi)時(shí)間的,因此,松哥今天決定寫(xiě)一篇文章,和大伙好好捋捋中的亂碼問(wèn)題 經(jīng)常有讀者在公眾號(hào)上問(wèn) JavaWeb 亂碼的問(wèn)題,昨天又有一個(gè)小伙伴問(wèn)及此事,其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單,但是想要說(shuō)清楚卻并不容易,因?yàn)槊總€(gè)人亂碼的原因...
摘要:當(dāng)后繼請(qǐng)求相同的頁(yè)面時(shí),容器加載之前生成的類,并且通知去執(zhí)行已經(jīng)存在的字節(jié)碼,從而省去了轉(zhuǎn)換的過(guò)程,這也是第一次執(zhí)行頁(yè)面時(shí)間較長(zhǎng)的原因。 以往學(xué)習(xí)的時(shí)候大多是看完書(shū)或者看完視頻,動(dòng)手實(shí)踐一下就OK了。然而過(guò)了一段時(shí)間我發(fā)現(xiàn)東西都忘差不多了,需要復(fù)習(xí)才能重新掌握?,F(xiàn)在開(kāi)始學(xué)習(xí)JavaWeb了,我將在這里記錄自己的學(xué)習(xí)的一點(diǎn)一滴,不僅便于自己以后回顧知識(shí)點(diǎn),也希望能對(duì)JavaWeb初學(xué)者有...
摘要:在頁(yè)面中執(zhí)行的表達(dá)式語(yǔ)法表達(dá)式注意表達(dá)式不以分號(hào)結(jié)束示例張學(xué)友聲明一個(gè)字符串變量聲明一個(gè)返回整型值的函數(shù)單行注釋多行注釋這里是腳本代碼測(cè)試哈哈你好四頁(yè)面生命周期問(wèn)答題當(dāng)用戶第一次請(qǐng)求一個(gè)頁(yè)面時(shí),首先被執(zhí)行的方法是構(gòu)造方法答案選。 java web開(kāi)發(fā)學(xué)習(xí)筆記。 一、jsp簡(jiǎn)介 JSP與 PHP、ASP、ASP.NET 等語(yǔ)言類似,運(yùn)行在服務(wù)端的語(yǔ)言。 JSP(全稱Java Server...
閱讀 876·2021-10-25 09:45
閱讀 3305·2021-09-22 14:58
閱讀 3861·2021-08-31 09:43
閱讀 924·2019-08-30 15:55
閱讀 924·2019-08-29 13:51
閱讀 1237·2019-08-29 13:02
閱讀 3493·2019-08-29 12:52
閱讀 1968·2019-08-26 13:27