摘要:出現(xiàn)的目的同一樣也是要提到頁面中的腳本代碼。標準標準標簽庫有個子庫,但隨著發(fā)展,目前常使用的是他的核心庫標簽庫標簽庫的前綴下載與導(dǎo)入下載從的網(wǎng)站下載的包。
一、JSP技術(shù)
1.jsp腳本和注釋
jsp腳本:
1)<%java代碼%> ----- 內(nèi)部的java代碼翻譯到service方法的內(nèi)部
2)<%=java變量或表達式> ----- 會被翻譯成service方法內(nèi)部out.print()
3)<%!java代碼%> ---- 會被翻譯成servlet的成員的內(nèi)容
jsp注釋: 不同的注釋可見范圍是不同
1)Html注釋: ---可見范圍 jsp源碼、翻譯后的servlet、頁面 顯示html源碼
2)java注釋://單行注釋 /多行注釋/ --可見范圍 jsp源碼 翻譯后的servlet
3)jsp注釋:<%--注釋內(nèi)容--%> ----- 可見范圍 jsp源碼可見
2.jsp運行原理-----jsp本質(zhì)就是servlet(面試)
jsp在第一次被訪問時會被Web容器翻譯成servlet,在執(zhí)行
過程:
第一次訪問---->helloServlet.jsp---->helloServlet_jsp.java---->編譯運行
PS:被翻譯后的servlet在Tomcat的work目錄中可以找到
3.jsp指令(3個)
jsp的指令是指導(dǎo)jsp翻譯和運行的命令,jsp包括三大指令:
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:當前頁面是一個處理錯誤的頁面
2)include指令
頁面包含(靜態(tài)包含)指令,可以將一個jsp頁面包含到另一個jsp頁面中
格式:<%@ include file="被包含的文件地址"%>
3)taglib指令
在jsp頁面中引入標簽庫(jstl標簽庫、struts2標簽庫)
格式:<%@ taglib uri="標簽庫地址" prefix="前綴"%>
4.jsp內(nèi)置/隱式對象(9個)----- 筆試
jsp被翻譯成servlet之后,service方法中有9個對象定義并初始化完畢,我們在jsp 腳本中可以直接使用這9個對象
名稱 類型 描述
out javax.servlet.jsp.JspWriter 用于頁面輸出
request javax.servlet.http.HttpServletRequest 得到用戶請求信息,
response javax.servlet.http.HttpServletResponse 服務(wù)器向客戶端的回應(yīng)信息
config javax.servlet.ServletConfig 服務(wù)器配置,可以取得初始化參數(shù)
session javax.servlet.http.HttpSession 用來保存用戶的信息
application javax.servlet.ServletContext 所有用戶的共享信息
page java.lang.Object 指當前頁面轉(zhuǎn)換后的Servlet類的實例
pageContext javax.servlet.jsp.PageContext JSP的頁面容器
exception java.lang.Throwable 表示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)用
2)可以獲得其他8大隱式對象
例如: pageContext.getRequest()
pageContext.getSession()
5.jsp標簽(動作)
1)頁面包含(動態(tài)包含):
2)請求轉(zhuǎn)發(fā):
靜態(tài)包含與動態(tài)包含的區(qū)別?
二、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
4)EL獲得List
5)EL獲得Map
6)EL獲得Map
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 前綴
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包。進入 “http://archive.apache.org/dis...”網(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)
將兩個jar包導(dǎo)入我們工程的lib中
3.JSTL核心庫的常用標簽
1)
2)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72090.html
摘要:經(jīng)常有讀者在公眾號上問亂碼的問題,昨天又有一個小伙伴問及此事,其實這個問題很簡單,但是想要說清楚卻并不容易,因為每個人亂碼的原因都不一樣,給每位小伙伴都把亂碼的原因講一遍也挺費時間的,因此,松哥今天決定寫一篇文章,和大伙好好捋捋中的亂碼問題 經(jīng)常有讀者在公眾號上問 JavaWeb 亂碼的問題,昨天又有一個小伙伴問及此事,其實這個問題很簡單,但是想要說清楚卻并不容易,因為每個人亂碼的原因...
摘要:當后繼請求相同的頁面時,容器加載之前生成的類,并且通知去執(zhí)行已經(jīng)存在的字節(jié)碼,從而省去了轉(zhuǎn)換的過程,這也是第一次執(zhí)行頁面時間較長的原因。 以往學(xué)習(xí)的時候大多是看完書或者看完視頻,動手實踐一下就OK了。然而過了一段時間我發(fā)現(xiàn)東西都忘差不多了,需要復(fù)習(xí)才能重新掌握。現(xiàn)在開始學(xué)習(xí)JavaWeb了,我將在這里記錄自己的學(xué)習(xí)的一點一滴,不僅便于自己以后回顧知識點,也希望能對JavaWeb初學(xué)者有...
摘要:在頁面中執(zhí)行的表達式語法表達式注意表達式不以分號結(jié)束示例張學(xué)友聲明一個字符串變量聲明一個返回整型值的函數(shù)單行注釋多行注釋這里是腳本代碼測試哈哈你好四頁面生命周期問答題當用戶第一次請求一個頁面時,首先被執(zhí)行的方法是構(gòu)造方法答案選。 java web開發(fā)學(xué)習(xí)筆記。 一、jsp簡介 JSP與 PHP、ASP、ASP.NET 等語言類似,運行在服務(wù)端的語言。 JSP(全稱Java Server...
閱讀 874·2021-10-25 09:45
閱讀 3298·2021-09-22 14:58
閱讀 3856·2021-08-31 09:43
閱讀 919·2019-08-30 15:55
閱讀 923·2019-08-29 13:51
閱讀 1235·2019-08-29 13:02
閱讀 3490·2019-08-29 12:52
閱讀 1965·2019-08-26 13:27