JSP
- 概念
- JSP:Java Server Pages
- 替代servlet做前端的展示
- 擁有servlet的特性與優點(本身就是一個servlet)
- 直接在HTML中內嵌JSP代碼
- JSP程序由JSP Engine先將它轉換成Servlet代碼,接着將它編譯成類文件載入執行
- 只有當客戶端第一次請求JSP時,才需要將其轉換、編譯
- JSP本質
- JSP 和servlet是一體兩面(一回事)
- JSP就是servlet
- JSP的組成
- 編譯(指令)元素(標籤)
- 腳本元素(java代碼)
- 靜態元素(html)
- JSP=JAVA+HTML
- JSP指令元素有哪些,分別怎麼使用?
- page、include、taglib
- page指令:定義頁面的一些屬性。
- <%@page %>
- import:多包導入使用逗號隔開
- pageEncoding: utf-8
- <%@page %>
- include指令:引入一個靜態的JSP頁面
- <%@include file="引入頁面的位置” %>
- taglib指令:引入一個標籤庫
- <%@taglib %> :引入標籤庫 jstl(jsp standard tags lig)
- prefix: 前綴:區別不同標籤庫的相同標籤名稱
- uri:標籤庫的位置
- <%@taglib %> :引入標籤庫 jstl(jsp standard tags lig)
- 動作元素
- <jsp:include page=””>
- <jsp:forward>
- <jsp:usebean>
- <jsp:setProperty>
- <jsp:getProperty>
- jsp:include 和編譯指令include的區別
- @include編譯指令是在JSP程序的轉換時期就將file屬性所指定的程序內容嵌入,然後再編譯執行;而<jsp:include>指令在轉換時期是不會被編譯的,只有在客戶端請求時期如果被執行到纔會被動態的編譯載入。
- @include編譯指令生成一個java文件而<jsp:include>指令會成兩個java文件
- @Include不能帶參數, 而<jsp:include>可以
- PS :動態包含的文件和被包含文件用的是同一個request對象
- JSP中的Java腳本
- 格式
- <% %>:內容
- <%! %>:聲明方法,變量
- <% =... %>:輸出等號後面的內容,不需要以”;”結束
- 格式
- 講解JSP中的四種作用域
- 四種作用域包括page、request、session和application,具體來說:
- page是代表一個頁面相關的對象和屬性。一個頁面由一個編譯好的java servlet類(可以帶有include指令,但不可以帶有include動作)表示。這既包括servlet又包括編譯成servlet的jsp頁面。
- request是代表與web客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個web組件(由於forware指令和include動作的關係)
- session是代表與用於某個web客戶機的一個用戶體驗相關的對象和屬性。一個web回話也可以經常跨域多個客戶機請求。
- application是代表與整個web應用程序相關的對象和屬性。這實質上是跨域整個web應用程序,包括多個頁面、請求和回話的一個全局作用域。
- JSP的九大內置對象。
- out
- request
- response
- session
- application
- config
- pageContext
- page
- Exception
- EL表達式(Expression Language)
- EL的功能:簡化JSP頁面開發,可以使用EL表達式訪問JSP隱含對象和JavaBean組件,避免使用Java腳本。
- EL表達式的語法:
- ${ EL expression }
- ${ bean.name } or ${ bean[‘name’]} 實質上是調用bean的getName()方法。
- JSP頁面忽略EL:
- page指令屬性isELIgnored=”true”;
- EL訪問作用域變量
- 定義方式:即作用域變量(pageContext/request/session/application).setAttribute(“name”,”value”);
- 訪問方式:${name} or ${***Scope.name}
- EL的運算符
- 算數運算符
- 邏輯運算符
- 三元運算符
- JSTL
- 概念
- JSTL(JavaServerPages Standard Tag Library)JSP標準標籤庫
- 優點:
- 提供一組標籤,用於編寫各種動態JSP頁面
- 通常和EL合作實現功能
- JSTL的導入
- 在項目中增加jstl.jar架包
- <%@ taglib uri=”http://java.sun.com/jsp/jstl/core”prefix=”c” %>
- 概念
- JSTL標準標籤庫內的標籤
- 通用標籤
- set
- remove
- out
- 條件標籤
- if
- 迭代標籤
- forEach
- 通用標籤
- JSTL格式化
- 用法:
- 格式化並輸出文本,日期,時間,數字。
- 引入方式:
- <%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt”prefix=”fmt” %>
- 用法: