JSP 2.0(java server pages):html
EL 算法(Arithmetic)表達式:java
EL Expression | Result |
${1} | 1 |
${1 + 2} | 3 |
${1.2 + 2.3} | 3.5 |
${1.2E4 + 1.4} | 12001.4 |
${-4 - 2} | -6 |
${21 * 2} | 42 |
${3/4} | 0.75 |
${3 div 4} | 0.75 |
${3/0} | Infinity |
${10%4} | 2 |
${10 mod 4} | 2 |
${(1==2) ? 3 : 4} | 4 |
EL 比較(comparions):web
Numberic: 算法
EL Expression | Result |
${1 < 2} | true |
${1 lt 2} | true |
${1 > (4/2)} | false |
${1 gt (4/2)} | false |
${4.0 >= 3} | true |
${4.0 ge 3} | true |
${4 <= 3} | false |
${4 le 3} | false |
${100.0 == 100} | true |
${100.0 eq 100} | true |
${(10*10) != 100} | false |
${(10*10) ne 100} | false |
Alphabeticexpress
EL Expression | Result |
${'a' < 'b'} | true |
${'hip' > 'hit'} | false |
${'4' > 3} | true |
EL implicit object(內置對象): 瀏覽器
其中application、request、session,pageContext的獲取方式都爲 ${***}也可以使用${***Scope.****}加快訪問。緩存
而param爲頁面參數對象,所以獲取方式爲 param['****']或者爲param.***,多常見jsp頁面之間自身傳值或刷新時,參數獲取。安全
※因jsp大多放在web-inf下,所以沒法直接被訪問。所以這種jsp(必須放在web-inf外)直接調用的方式不是不少見。服務器
<input type="text" name="foo" value="${param.foo}" /> <a href="elLearn.jsp?foo=zhangsan">刷新本身</a>
header信息的展現 header['']或者爲header.***:cookie
${header.user-name}
${header.host}
cookie的獲取方式爲: ${cookie.****.name} ${cookie.****.value}
<% Cookie cok = new Cookie("secondName", "wangliwei"); cok.setDomain("/"); response.addCookie(cok); %> ${cookie.secondName.name} ${cookie.secondName.value}
JSP 運行在服務端的語言,以 Java 語言做爲腳本語言的,JSP 網頁爲整個服務器端的 Java 庫單元提供了一個接口來服務於HTTP的應用程序。是一種動態網頁開發技術。
JSP 基於Java Servlet API,以<% ... %>開頭結束。
request 請求對象 類型 javax.servlet.ServletRequest 做用域 Request
response 響應對象 類型 javax.servlet.SrvletResponse 做用域 Page
pageContext 頁面上下文對象 類型 javax.servlet.jsp.PageContext 做用域 Page
session 會話對象 類型 javax.servlet.http.HttpSession 做用域 Session
application 應用程序對象 類型 javax.servlet.ServletContext 做用域 Application
out 輸出對象 類型 javax.servlet.jsp.JspWriter 做用域 Page
config 配置對象 類型 javax.servlet.ServletConfig 做用域 Page
page 頁面對象 類型 javax.lang.Object 做用域 Page
exception 例外對象 類型 javax.lang.Throwable 做用域 page
獲取當前訪問路徑:${pageContext.requext.contextPath}
JSP指令用來設置與整個JSP頁面相關的屬性。
<%@ directive attribute="value" %>
指令有3種:
指令 | 描述 | |
---|---|---|
<%@ page ... %> | Page指令爲容器提供當前頁面的使用說明。一個JSP頁面能夠包含多個page指令。 定義頁面的依賴屬性,好比腳本語言、error頁面、緩存需求等等 |
|
<%@ include ... %> | 包含其餘文件,這種是靜態引入,即引入的jsp的路徑必須指定好。jsp在造成時會將此include的jsp頁面copy進來, 所以被引入的頁面的tag-lib的prefix不能和當前頁面重複。<c:important 和 <jsp:include 爲動態引入, 即各自編譯本身的jsp頁面,在展示時再合爲一體。適合將一個大的頁面切割成幾個部分,方便維護。 <%@ include file="./myJstl.jsp" %> |
|
<%@ taglib ... %> | 引入標籤庫的定義,能夠是自定義標籤參見 JSTL-tagLib |
page 指令屬性:
屬性 | 描述 |
---|---|
buffer | 指定out對象使用緩衝區的大小 |
autoFlush | 控制out對象的 緩存區 |
contentType | 指定當前JSP頁面的MIME類型和字符編碼 |
errorPage | 指定當JSP頁面發生異常時須要轉向的錯誤處理頁面 |
isErrorPage | 指定當前頁面是否能夠做爲另外一個JSP頁面的錯誤處理頁面 |
extends | 指定servlet從哪個類繼承 |
import | 導入要使用的Java類,做爲當前使用類的引用類,注意類之間的使用順序 <%@ page import="bean.Book" %> |
info | 定義JSP頁面的描述信息 |
isThreadSafe | 指定對JSP頁面的訪問是否爲線程安全 |
language | 定義JSP頁面所用的腳本語言,默認是Java |
session | 指定JSP頁面是否使用session |
isELIgnored | 指定是否執行EL表達式 |
isScriptingEnabled | 肯定腳本元素可否被使用 |
寫法以下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page errorPage="error.jsp" %> <%@ page import="bean.Book" %> <% Book book = new Book(1234,"java","Denny","java content"); out.print(book.getBookAuthor()); %>
名稱(Xml格式) | 描述 | 對等 | Example |
<jsp:scriptlet> |
代碼片斷 | <%****%> | <% int a=5; %> |
<jsp:declaration> |
聲明變量,頁面全局用 | <%!****%> | <%! int i = 0; %> |
<jsp:expression> |
表達式,用於輸出內容 | <%=****%> | <%= i %> |
<%-- 註釋 --%> | 註釋,在html頁面看不到 | <!--註釋 --> html註釋,頁面上能夠看到 | |
全部的動做要素都有兩個屬性:id屬性和scope屬性。
id屬性是動做元素的惟一標識,能夠在JSP頁面中引用。動做元素建立的id值能夠經過PageContext來調用。
該屬性用於識別動做元素的生命週期。 id屬性和scope屬性有直接關係,scope屬性定義了相關聯id對象的壽命。
scope屬性有四個可能的值: (a) page, (b)request, (c)session, 和 (d) application
<jsp:action_name attribute="value" />
語法 | 描述 | Example |
---|---|---|
jsp:include | 在頁面被請求的時候引入一個文件。 | <jsp:include page="date.jsp" flush="true" /> |
jsp:useBean | 尋找或者實例化一個JavaBean。 | <jsp:useBean id="books" class="bean.Book" /> <% books.setBookDes("java is content"); %> <jsp:setProperty property="bookAuthor" value="DennyZhao" name="books"></jsp:setProperty> <jsp:getProperty property="bookAuthor" name="books" /> <jsp:getProperty property="bookDes" name="books" /> |
jsp:setProperty | 設置JavaBean的屬性。 | |
jsp:getProperty | 輸出某個JavaBean的屬性。 | |
jsp:forward | 把請求轉到一個新的頁面。 | <jsp:forward page="**" /> 僅可定向到項目內 至關於 <c:redirect url="***"/> 可定向到項目外連接 |
jsp:plugin | 根據瀏覽器類型爲Java插件生成OBJECT或EMBED標記。 | java插件引入java類,Java組件能夠是一個applet或一個JavaBeanplugin,動做有多個對應HTML元素的屬性用於格式化Java 組件。param元素可用於向Applet 或 Bean 傳遞參數。 用於java在瀏覽器嵌入applet。 |
jsp:element | 定義動態XML元素 | 至關於在html中自定義標籤 |
jsp:attribute | 設置動態定義的XML元素屬性。 | 定義元素屬性。<jsp:element><jsp:attribute /></jsp:element> 至關於 <input type="text" |
jsp:body | 設置動態定義的XML元素內容。 | <jsp:element name="inputX" > |
jsp:text | 在JSP頁面和文檔中使用寫入文本的模板 | 文本模板,內部只能放文本和el表達式其中el表達式中的<>要使用gt;lt來表示。 在新版本中已經去除了此屬性。 |