69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

JSP 語法


本小節(jié)將會(huì)簡單地介紹一下jsp開發(fā)中的基礎(chǔ)語法。

腳本程序

腳本程序可以包含任意量的java語句、變量、方法或表達(dá)式,只要它們在腳本語言中是有效的。

腳本程序的語法格式:

<% 代碼片段 %>

或者,您也可以編寫與其等價(jià)的xml語句,就像下面這樣:

    代碼片段 

任何文本、html標(biāo)簽、jsp元素必須寫在腳本程序的外面。

下面給出一個(gè)示例,同時(shí)也是本教程的第一個(gè)jsp示例:

 hello world hello world!

<%
out.println("your ip address is " + request.getremoteaddr());
%>

注意:請確保apache tomcat已經(jīng)安裝在c:\apache-tomcat-7.0.2目錄下并且運(yùn)行環(huán)境已經(jīng)正確設(shè)置。

將以上代碼保存在hello.jsp中,然后將它放置在 c:\apache-tomcat-7.0.2\webapps\root目錄下,打開瀏覽器并在地址欄中輸入http://localhost:8080/hello.jsp。運(yùn)行后得到以下結(jié)果:

中文編碼問題

如果我們要在頁面正常顯示中文,我們需要在 jsp 文件頭部添加以下代碼:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>

接下來我們將以上程序修改為:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%> 碩編程(yapf.com) hello world!

<%
out.println("你的 ip 地址 " + request.getremoteaddr());
%>

這樣中文就可以正常顯示了。

jsp聲明

一個(gè)聲明語句可以聲明一個(gè)或多個(gè)變量、方法,供后面的java代碼使用。在jsp文件中,您必須先聲明這些變量和方法然后才能使用它們。

jsp聲明的語法格式:

<%! declaration; [ declaration; ]+ ... %>

或者,您也可以編寫與其等價(jià)的xml語句,就像下面這樣:

    代碼片段 

程序示例:

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! circle a = new circle(2.0); %> 

jsp表達(dá)式

一個(gè)jsp表達(dá)式中包含的腳本語言表達(dá)式,先被轉(zhuǎn)化成string,然后插入到表達(dá)式出現(xiàn)的地方。

由于表達(dá)式的值會(huì)被轉(zhuǎn)化成string,所以您可以在一個(gè)文本行中使用表達(dá)式而不用去管它是否是html標(biāo)簽。

表達(dá)式元素中可以包含任何符合java語言規(guī)范的表達(dá)式,但是不能使用分號(hào)來結(jié)束表達(dá)式。

jsp表達(dá)式的語法格式:

<%= 表達(dá)式 %>

同樣,您也可以編寫與之等價(jià)的xml語句:

    表達(dá)式 

程序示例:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%> 碩編程(yapf.com) 

今天的日期是: <%= (new java.util.date()).tolocalestring()%>

運(yùn)行后得到以下結(jié)果:

今天的日期是: 2016-6-25 13:40:07

jsp注釋

jsp注釋主要有兩個(gè)作用:為代碼作注釋以及將某段代碼注釋掉。

jsp注釋的語法格式:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%> 碩編程(yapf.com) <%-- 該部分注釋在網(wǎng)頁中不會(huì)被顯示--%> 

今天的日期是: <%= (new java.util.date()).tolocalestring()%>

運(yùn)行后得到以下結(jié)果:

今天的日期是: 2016-6-25 13:41:26

不同情況下使用注釋的語法規(guī)則:

語法 描述
<%-- 注釋 --%> jsp注釋,注釋內(nèi)容不會(huì)被發(fā)送至瀏覽器甚至不會(huì)被編譯
html注釋,通過瀏覽器查看網(wǎng)頁源代碼時(shí)可以看見注釋內(nèi)容
<\% 代表靜態(tài) <%常量
%\> 代表靜態(tài) %> 常量
\' 在屬性中使用的單引號(hào)
\" 在屬性中使用的雙引號(hào)

jsp指令

jsp指令用來設(shè)置與整個(gè)jsp頁面相關(guān)的屬性。

jsp指令語法格式:

<%@ directive attribute="value" %>

這里有三種指令標(biāo)簽:

指令 描述
<%@ page ... %> 定義頁面的依賴屬性,比如腳本語言、error頁面、緩存需求等等
<%@ include ... %> 包含其他文件
<%@ taglib ... %> 引入標(biāo)簽庫的定義,可以是自定義標(biāo)簽

jsp行為

jsp行為標(biāo)簽使用xml語法結(jié)構(gòu)來控制servlet引擎。它能夠動(dòng)態(tài)插入一個(gè)文件,重用javabean組件,引導(dǎo)用戶去另一個(gè)頁面,為java插件產(chǎn)生相關(guān)的html等等。

行為標(biāo)簽只有一種語法格式,它嚴(yán)格遵守xml標(biāo)準(zhǔn):

 

行為標(biāo)簽基本上是一些預(yù)先就定義好的函數(shù),下表羅列出了一些可用的jsp行為標(biāo)簽::

語法 描述
jsp:include 用于在當(dāng)前頁面中包含靜態(tài)或動(dòng)態(tài)資源
jsp:usebean 尋找和初始化一個(gè)javabean組件
jsp:setproperty 設(shè)置 javabean組件的值
jsp:getproperty 將 javabean組件的值插入到 output中
jsp:forward 從一個(gè)jsp文件向另一個(gè)文件傳遞一個(gè)包含用戶請求的request對象
jsp:plugin 用于在生成的html頁面中包含applet和javabean對象
jsp:element 動(dòng)態(tài)創(chuàng)建一個(gè)xml元素
jsp:attribute 定義動(dòng)態(tài)創(chuàng)建的xml元素的屬性
jsp:body 定義動(dòng)態(tài)創(chuàng)建的xml元素的主體
jsp:text 用于封裝模板數(shù)據(jù)

jsp 隱含對象

jsp 支持九個(gè)自動(dòng)定義的變量,江湖人稱隱含對象,它們是在 jsp 頁面中自動(dòng)可用的對象,無需額外的聲明或初始化。

這九個(gè)隱含對象的簡介見下表:

對象 描述
request httpservletrequest類的實(shí)例,代表 http 請求的對象,包含客戶端發(fā)送到服務(wù)器的信息,如表單數(shù)據(jù)、url參數(shù)等。
response httpservletresponse類的實(shí)例,代表 http 響應(yīng)的對象,用于向客戶端發(fā)送數(shù)據(jù)和響應(yīng)。
out jspwriter類的實(shí)例,用于向客戶端輸出文本內(nèi)容的對象,通常用于生成html。
session httpsession類的實(shí)例,代表用戶會(huì)話的對象,可用于存儲(chǔ)和檢索用戶特定的數(shù)據(jù),跨多個(gè)頁面。
application servletcontext類的實(shí)例,代表 web 應(yīng)用程序的上下文,可以用于存儲(chǔ)和檢索全局應(yīng)用程序數(shù)據(jù)。
config servletconfig類的實(shí)例,包含有關(guān)當(dāng)前 jsp 頁面的配置信息,例如初始化參數(shù)。
pagecontext pagecontext類的實(shí)例,提供對jsp頁面所有對象以及命名空間的訪問
page 類似于 java 類中的 this 關(guān)鍵字,代表當(dāng)前 jsp 頁面的實(shí)例,可以用于調(diào)用頁面的方法。
exception exception 類的對象,代表發(fā)生錯(cuò)誤的 jsp 頁面中對應(yīng)的異常對象,用于處理 jsp 頁面中的異常情況,可用于捕獲和處理頁面中發(fā)生的異常。

控制流語句

jsp提供對java語言的全面支持。您可以在jsp程序中使用java api甚至建立java代碼塊,包括判斷語句和循環(huán)語句等等。

判斷語句

if…else 塊,請看下面這個(gè)例子:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%! int day = 3; %>  碩編程(yapf.com) 

if...else 實(shí)例

<% if (day == 1 || day == 7) { %>

今天是周末

<% } else { %>

今天不是周末

<% } %>

運(yùn)行后得到以下結(jié)果:

if...else 實(shí)例
今天不是周末

現(xiàn)在來看看switch…case塊,與if…else塊有很大的不同,它使用out.println(),并且整個(gè)都裝在腳本程序的標(biāo)簽中,就像下面這樣:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%! int day = 3; %>  碩編程(yapf.com) 

switch...case 實(shí)例

<% 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("星期六"); } %>

瀏覽器訪問,運(yùn)行后得出以下結(jié)果:

switch...case 實(shí)例

星期三

循環(huán)語句

在jsp程序中可以使用java的三個(gè)基本循環(huán)類型:for,while,和 do…while。

讓我們來看看for循環(huán)的例子,以下輸出的不同字體大小的"碩編程":

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%! int fontsize; %>  碩編程(yapf.com) 

for 循環(huán)實(shí)例

<%for ( fontsize = 1; fontsize <= 3; fontsize++){ %> 碩編程 <%}%>

運(yùn)行后得到以下結(jié)果:

將上例改用 while 循環(huán)來寫:

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%! int fontsize=0; %>  碩編程(yapf.com) 

while 循環(huán)實(shí)例

<%while ( fontsize <= 3){ %> 碩編程 <%fontsize++;%> <%}%>
瀏覽器訪問,輸出結(jié)果為(fontsize 初始化為0,所以多輸出了一行):

jsp運(yùn)算符

jsp支持所有java邏輯和算術(shù)運(yùn)算符。

下表羅列出了jsp常見運(yùn)算符,優(yōu)先級從高到底:

類別 操作符 結(jié)合性
后綴 () [] . (點(diǎn)運(yùn)算符) 左到右
一元 ++ - - ! ~ 右到左
可乘性 * / %  左到右
可加性 + -  左到右
移位 >> >>> <<   左到右 
關(guān)系 > >= < <=   左到右
相等/不等 == !=  左到右
位與 左到右
位異或 左到右
位或 左到右
邏輯與 &&  左到右
邏輯或 ||  左到右
條件判斷 ?:  右到左
賦值 = += -= *= /= %= >>= <<= &= ^= |=  右到左
逗號(hào)  左到右 

jsp 字面量

jsp語言定義了以下幾個(gè)字面量:

  • 布爾值(boolean):true 和 false;
  • 整型(int):與 java 中的一樣;
  • 浮點(diǎn)型(float):與 java 中的一樣;
  • 字符串(string):以單引號(hào)或雙引號(hào)開始和結(jié)束;
  • null:null。
相關(guān)文章