JSP常用語法

入門

  • 語法格式 <% 代碼片段 %>
  • 中文編碼 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  • 聲明 <%! int a = 0; %>
  • 表達式 <%= (new java.util.Date()).toLocaleString()%> //今天的日期是: 2016-6-25 13:40:07
  • 注釋 <%-- 該部分注釋在網(wǎng)頁中不會被顯示--%>

JSP指令

<%@ directive attribute="value" %>

page

Page指令為容器提供當前頁面的使用說明。一個JSP頁面可以包含多個page指令妆艘。<%@ page attribute="value" %>

  • buffer 指定out對象使用緩沖區(qū)的大小
  • autoFlush 控制out對象的 緩存區(qū)
  • contentType 指定當前JSP頁面的MIME類型和字符編碼
  • errorPage 指定當JSP頁面發(fā)生異常時需要轉(zhuǎn)向的錯誤處理頁面
  • isErrorPage 指定當前頁面是否可以作為另一個JSP頁面的錯誤處理頁面
  • extends 指定servlet從哪一個類繼承
  • import 導(dǎo)入要使用的Java類
  • info 定義JSP頁面的描述信息
  • isThreadSafe 指定對JSP頁面的訪問是否為線程安全
  • language 定義JSP頁面所用的腳本語言,默認是Java
  • session 指定JSP頁面是否使用session
  • isELIgnored 指定是否執(zhí)行EL表達式
  • isScriptingEnabled 確定腳本元素能否被使用

include

JSP可以通過include指令來包含其他文件像云。被包含的文件可以是JSP文件冯乘、HTML文件或文本文件毕贼。包含的文件就好像是該JSP文件的一部分,會被同時編譯執(zhí)行畅蹂。<%@ include file="文件相對 url 地址" %>

taglib

JSP API允許用戶自定義標簽,一個自定義標簽庫就是自定義標簽的集合旬迹。
Taglib指令引入一個自定義標簽集合的定義火惊,包括庫路徑、自定義標簽奔垦。
<%@ taglib uri="uri" prefix="prefixOfTag" %>

JSP ACTION

利用JSP動作可以動態(tài)地插入文件屹耐、重用JavaBean組件、把用戶重定向到另外的頁面椿猎、為Java插件生成HTML代碼惶岭。
所有的動作要素都有兩個屬性

  • id屬性:
    id屬性是動作元素的唯一標識,可以在JSP頁面中引用犯眠。動作元素創(chuàng)建的id值可以通過PageContext來調(diào)用俗他。
  • scope屬性:
    該屬性用于識別動作元素的生命周期。 id屬性和scope屬性有直接關(guān)系阔逼,scope屬性定義了相關(guān)聯(lián)id對象的壽命兆衅。 scope屬性有四個可能的值: (a) page, (b)request, (c)session, 和 (d) application。

jsp:include

用于在當前頁面中包含靜態(tài)或動態(tài)資源: <jsp:include page="相對 URL 地址" flush="true" />

  • page 包含在頁面中的相對URL地址嗜浮。
  • flush 布爾屬性羡亩,定義在包含資源前是否刷新緩存區(qū)。

jsp:useBean

用來加載一個將在JSP頁面中使用的JavaBean
<jsp:useBean id="name" class="package.class" />

  • class 指定Bean的完整包名危融。
  • type 指定將引用該對象變量的類型畏铆。
  • beanName 通過 java.beans.Beans 的 instantiate() 方法指定Bean的名字。
    在給出具體實例前吉殃,讓我們先來看下 jsp:setProperty 和 jsp:getProperty 動作元素

jsp:setProperty

jsp:setProperty用來設(shè)置已經(jīng)實例化的Bean對象的屬性辞居,有兩種用法。首先蛋勺,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty瓦灶,如下所示:

<jsp:useBean id="myName" ... />
<jsp:setProperty name="myName" property="someProperty" .../>

此時,不管jsp:useBean是找到了一個現(xiàn)有的Bean抱完,還是新創(chuàng)建了一個Bean實例贼陶,jsp:setProperty都會執(zhí)行。第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部巧娱,如下所示:

<jsp:useBean id="myName" ... >
   <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

此時碉怔,jsp:setProperty只有在新建Bean實例時才會執(zhí)行,如果是使用現(xiàn)有實例則不執(zhí)行jsp:setProperty禁添。
jsp:setProperty動作有下面四個屬性,如下表:

  • name name屬性是必需的撮胧。它表示要設(shè)置屬性的是哪個Bean。
  • property property屬性是必需的老翘。它表示要設(shè)置哪個屬性芹啥。有一個特殊用法:如果property的值是"*"锻离,表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應(yīng)的屬性set方法。
  • value value 屬性是可選的叁征。該屬性用來指定Bean屬性的值纳账。字符串數(shù)據(jù)會在目標類中通過標準的valueOf方法自動轉(zhuǎn)換成數(shù)字逛薇、boolean捺疼、Boolean、 byte永罚、Byte啤呼、char、Character呢袱。例如官扣,boolean和Boolean類型的屬性值(比如"true")通過 Boolean.valueOf轉(zhuǎn)換,int和Integer類型的屬性值(比如"42")通過Integer.valueOf轉(zhuǎn)換羞福。   value和param不能同時使用惕蹄,但可以使用其中任意一個。
  • param param 是可選的治专。它指定用哪個請求參數(shù)作為Bean屬性的值卖陵。如果當前請求沒有參數(shù),則什么事情也不做张峰,系統(tǒng)不會把null傳遞給Bean屬性的set方法泪蔫。因此,你可以讓Bean自己提供默認屬性值喘批,只有當請求參數(shù)明確指定了新值時才修改默認屬性值撩荣。

jsp:getProperty

jsp:getProperty動作提取指定Bean屬性的值,轉(zhuǎn)換成字符串饶深,然后輸出餐曹。語法格式如下:

<jsp:useBean id="myName" ... />
<jsp:getProperty name="myName" property="someProperty" .../>

下表是與getProperty相關(guān)聯(lián)的屬性:

  • name 要檢索的Bean屬性名稱。Bean必須已定義敌厘。
  • property 表示要提取Bean屬性的值

jsp:forward

從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象
<jsp:forward page="相對 URL 地址" />

  • page page屬性包含的是一個相對URL凸主。page的值既可以直接給出,也可以在請求的時候動態(tài)計算额湘,可以是一個JSP頁面或者一個 Java Servlet.

jsp:plugin

用來根據(jù)瀏覽器的類型卿吐,插入通過Java插件 運行Java Applet所必需的OBJECT或EMBED元素。如果需要的插件不存在锋华,它會下載插件嗡官,然后執(zhí)行Java組件。 Java組件可以是一個applet或一個JavaBean毯焕。plugin動作有多個對應(yīng)HTML元素的屬性用于格式化Java 組件衍腥。param元素可用于向Applet 或 Bean 傳遞參數(shù)磺樱。
以下是使用plugin 動作元素的典型實例:

<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"
                           width="60" height="80">
   <jsp:param name="fontcolor" value="red" />
   <jsp:param name="background" value="black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
 
</jsp:plugin>

jsp:element jsp:attribute jsp:body

<jsp:element> 、 <jsp:attribute>婆咸、 <jsp:body>動作元素動態(tài)定義XML元素竹捉。動態(tài)是非常重要的,這就意味著XML元素在編譯時是動態(tài)生成的而非靜態(tài)尚骄。
以下實例動態(tài)定義了XML元素:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<jsp:element name="xmlElement">
<jsp:attribute name="xmlElementAttr">
   屬性值
</jsp:attribute>
<jsp:body>
   XML 元素的主體
</jsp:body>
</jsp:element>
</body>
</html>

jsp:text

<jsp:text>動作元素允許在JSP頁面和文檔中使用寫入文本的模板块差,語法格式如下:
<jsp:text>模板數(shù)據(jù)</jsp:text>

JSP內(nèi)置對象

  • request HttpServletRequest類的實例
  • response HttpServletResponse類的實例
  • out PrintWriter類的實例,用于把結(jié)果輸出至網(wǎng)頁上
  • session HttpSession類的實例
  • application ServletContext類的實例倔丈,與應(yīng)用上下文有關(guān)
  • config ServletConfig類的實例
  • pageContext PageContext類的實例憨闰,提供對JSP頁面所有對象以及命名空間的訪問
  • page 類似于Java類中的this關(guān)鍵字
  • Exception Exception類的對象,代表發(fā)生錯誤的JSP頁面中對應(yīng)的異常對象

控制流

IF

<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>

switch

<% 
switch(day) {
case 0:
   out.println("星期天");
   break;
case 1:
   out.println("星期一");
   break;
case 2:
   out.println("星期二");
   break;
case 3:
   out.println("星期三");
   break;
case 4:
   out.println("星期四");
   break;
case 5:
   out.println("星期五");
   break;
default:
   out.println("星期六");
}
%>

循環(huán)語句

for

<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    菜鳥教程
   </font><br />
<%}%>

while

<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    菜鳥教程
   </font><br />
<%fontSize++;%>
<%}%>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末需五,一起剝皮案震驚了整個濱河市鹉动,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宏邮,老刑警劉巖泽示,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜜氨,居然都是意外死亡械筛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門记劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來变姨,“玉大人,你說我怎么就攤上這事厌丑《ㄅ罚” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵怒竿,是天一觀的道長砍鸠。 經(jīng)常有香客問我,道長耕驰,這世上最難降的妖魔是什么爷辱? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮朦肘,結(jié)果婚禮上饭弓,老公的妹妹穿的比我還像新娘。我一直安慰自己媒抠,他們只是感情好弟断,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趴生,像睡著了一般阀趴。 火紅的嫁衣襯著肌膚如雪昏翰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天刘急,我揣著相機與錄音棚菊,去河邊找鬼。 笑死叔汁,一個胖子當著我的面吹牛统求,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播攻柠,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼球订,長吁一口氣:“原來是場噩夢啊……” “哼后裸!你這毒婦竟也來了瑰钮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤微驶,失蹤者是張志新(化名)和其女友劉穎浪谴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體因苹,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡苟耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扶檐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凶杖。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖款筑,靈堂內(nèi)的尸體忽然破棺而出智蝠,到底是詐尸還是另有隱情,我是刑警寧澤奈梳,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布杈湾,位于F島的核電站,受9級特大地震影響攘须,放射性物質(zhì)發(fā)生泄漏漆撞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一于宙、第九天 我趴在偏房一處隱蔽的房頂上張望浮驳。 院中可真熱鬧,春花似錦捞魁、人聲如沸至会。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奋献。三九已至健霹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓶蚂,已是汗流浹背糖埋。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窃这,地道東北人瞳别。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像杭攻,于是被迫代替她去往敵國和親祟敛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法兆解,類相關(guān)的語法馆铁,內(nèi)部類的語法,繼承相關(guān)的語法锅睛,異常的語法埠巨,線程的語...
    子非魚_t_閱讀 31,663評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,814評論 0 11
  • JSP隱含對象 JSP支持九個自動定義的變量,江湖人稱隱含對象现拒。這九個隱含對象的簡介見下表: |對象|描述||--...
    FTOLsXD閱讀 296評論 0 1
  • 什么是jsp辣垒? 很久之前,我們的網(wǎng)頁都是靜態(tài)的印蔬,就是我們所看到的頁面在編寫好之后總是唯一的勋桶。后來有人便提出動態(tài)頁面...
    ezsync小智閱讀 1,513評論 0 13
  • 1、什么是JSP動作元素 JSP動作元素(action elements)侥猬,動作元素為請求處理階段提供信息例驹。動作元...
    年少懵懂丶流年夢閱讀 1,255評論 0 0