JSP語法詳解
1)HTML注釋: <!-- 注釋內容 [ <%= 表達式 %> ] --> 可以用注釋內容,也可以用表達式.2)隱藏注釋:<%-- 注釋內容 --%> 注釋會被JSP編譯時被忽略.編譯器不會對<%-- --%>之間的語句編譯,它不會顯示在客戶的瀏覽器和源代碼中.3)聲明:<%! 聲明變量or方法 %> 聲明你將要在JSP程序中用到的變量和方法.可以一次性聲明多個變量和方法,要以";"結尾,聲明在Java中要合法.4)表達式:<%= 表達式 %> JAVA中的表達式,會被顯示在JSP頁面中,注意不要有";".5)JAVA代碼:<% JAVA代碼 %> 包含有效JAVA代碼.6)Include指令:<%@ include file="相對路徑" %> 可以包含HTML,JSP,文本文件,JAVA代碼,要注意在這個包含文件中不能使用<html><body>有時會導致錯誤. 屬性:file指相對路徑,如:"error.jsp""templates/onlinestore.html""/beans/calendar.jsp" 如果這個路徑以"/"開頭,那么這個路徑主要是參照JSP應用的上下關系路徑,如果路徑是以文件名或目錄名開頭,那么這個路徑就是正在使用的JSP文件的當前路徑.7)Page指令:<%@ page [ language="java" ] [ extends="package.class" ] [ import="{package.class | package.*}, ..." ] [ session="true | false" ] [ buffer="none | 8kb | sizekb" ] [ autoFlush="true | false" ] [ isThreadSafe="true | false" ] [ info="text" ] [ errorPage="relativeURL" ] [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] [ isErrorPage="true | false" ] %> 屬性:-language="java"聲明腳本語言的種類,暫時只能用"java" -extends="package.class"繼承一個類-import="{package.class | package.* }, ..."導入一個包,下面的包是默認自動導入的.java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*-session="true | false"是否允許session會話,默認true.-buffer="none | 8kb | sizekb"設置緩沖區(qū)大小默認值是8kb,none是關閉緩沖區(qū),sizekb是自己設置大小.-autoFlush="true | false"是否刷新緩沖區(qū),true(缺省值)輸出正常,false這個buffer溢出,就會導致一個錯誤,buffer設置為none,就要把這個設置為false.-isThreadSafe="true | false"設置Jsp文件是否能多線程使用。缺省值是true.-info="text"就是JSP的一些信息,能夠使用Servlet.getServletInfo方法取回.-errorPage="relativeURL"指定接收Exception對象的JSP頁面的URL.-isErrorPage="true | false"設置是否接收一個Exception對象.-contentType="text/html;charset=ISO-8859-1"設置頁面類型和字符集.缺省類型是:text/html,缺省字符集為 ISO-8859-1.8)<jsp:forward>標簽:<jsp:forward page="URL or 表達式"/><jsp:forward page="URL or 表達式"><jsp:param name="參數(shù)名" value="參數(shù)值 or 表達式" /></jsp:forward> 轉發(fā)一個request對象.<jsp:param>可以傳參,目標文件必須能夠處理參數(shù).如果使用非緩沖輸出,而且在使用<jsp:forward>之前,jsp文件已經(jīng)有了數(shù)據(jù),那么文件執(zhí)行就會出錯. 屬性:-page="URL or 表達式"要轉發(fā)的文件URL或者是一個代表URL的表達式.-<jsp:param name="參數(shù)名" value="參數(shù)值 or 表達式" />name參數(shù)名value參數(shù)值.9)<jsp:include>標簽:<jsp:include page="URL or 表達式" flush="true" /> <jsp:include page="URL or 表達式" flush="true" > <jsp:param name="參數(shù)名" value="參數(shù)值 or 表達式" />+ </jsp:include> 允許包含動態(tài)文件和靜態(tài)文件,動態(tài)的會被Jsp編譯器執(zhí)行.不能從文件名上判斷是動態(tài)的還是靜態(tài)的.<jsp:param>可以傳遞參數(shù). 屬性:-page="URL or 表達式"要包含文件的相對路徑,或者是代表相對路徑的表達.式. -flush="true"這里你必須使用flush="true",你不能使用false值.缺省值為false.<jsp:param>能傳遞一個或多個參數(shù)給動態(tài)文件,能在一個頁面中使用多個<jsp:param>來傳遞多個參數(shù).10)<jsp:getProperty>標簽:<jsp:getProperty name="Bean實例名" property="屬性名" /> 獲得Bean的屬性值之前,必須用<jsp:useBean>創(chuàng)建Bean.name指定新建Bean的id.只能JavaBean屬性:-name="bean的名字"由<jsp:useBean>的id屬性指定.-property="bean的屬性"所指定的Bean的屬性名.11)<jsp:setProperty>標簽:<jsp:setProperty name="Bean的id" { property= "*" property="propertyName" [ param="parameterName" ] property="propertyName" value="{string | <%= expression %>}" }/> <jsp:setProperty>的name的值應當于<jsp:useBean>中id的值多種方法來設定屬性值 : 通過用戶輸入的所有值(被做為參數(shù)儲存中request對象中)來匹配Bean中的屬性 通過用戶輸入的指定的值來匹配Bean中指定的屬性 在運行時使用一個表達式來匹配Bean的屬性 屬性:-name="Bean名稱"表示已經(jīng)在<jsp:useBean>中的id設置的Bean變量.-property="Bean屬性名" value="要設置的屬性名"如果你使用了property="*",那么Bean的屬性沒有必要按Html表單中的順序排序.-property ="*"儲存用戶在Jsp輸入的所有值,用于匹配Bean中的屬性.在Bean中的屬性的名字必須和request對象中的參數(shù)名一致.從客戶傳到服器上的參數(shù)值一般都是字符類型,這些字符串為了能夠在Bean中匹配就必須轉換成其它的類型,下面的表中列出了Bean屬性的類型以及他們的轉換方法.把字符串轉化為其它類型的方法,Property 類型方法:boolean or Boolean java.lang.Boolean.valueOf(String) byte or Byte java.lang.Byte.valueOf(String) char or Character java.lang.Character.valueOf(String) double or Double java.lang.Double.valueOf(String) integer or Integer java.lang.Integer.valueOf(String) float or Float java.lang.Float.valueOf(String) long or Long java.lang.Long.valueOf(String) 12)<jsp:useBean>標簽:<jsp:useBean id="beanInstanceName" scope="page | request | session | application" { class="package.class" | type="package.class" | class="package.class" type="package.class" | beanName="{package.class | <%= expression %>}" type="package.class" } />other elements</jsp:useBean> 用于創(chuàng)建一個JavaBeans組件,首先會試圖定位一個Bean實例,如果不存在,那么就會從創(chuàng)建一個新的.屬性:-id="創(chuàng)建的Bean變量名稱"在你所定義的范圍中確認Bean的變量,你能在后面的程序中使用此變量名來分辨不同的Bean 這個變量名對大小寫敏感,如果這個Bean已經(jīng)在別的<jsp:useBean>中創(chuàng)建,那么這個id的值必須與原來的那個id值一致. -scope="page | request | session | application"Bean存在的范圍以及id變量名的有效范圍.缺省值是page.13)<jsp:plugin>標簽: <jsp:plugin type="bean | applet" code="classFileName" codebase="classFileDirectoryName" [ name="instanceName" ] [ archive="URIToArchive, ..." ] [ align="bottom | top | middle | left | right" ] [ height="displayPixels" ] [ width="displayPixels" ] [ hspace="leftRightPixels" ] [ vspace="topBottomPixels" ] [ jreversion="JREVersionNumber | 1.1" ] [ nspluginurl="URLToPlugin" ] [ iepluginurl="URLToPlugin" ] > [ <jsp:params> [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> [ </jsp:params> ][ <jsp:fallback> text message for user </jsp:fallback> ] </jsp:plugin> 用于在瀏覽器中播放或顯示一個對象(典型的就是applet和Bean),而這種顯示需要在瀏覽器的java插件.當Jsp文件被編譯,送往瀏覽器時,<jsp:plugin>標簽將會根據(jù)瀏覽器的版本替換成< object>或者<embed>元素.注意<object>用于HTML 4.0 ,<embed>用于HTML 3.2.一般來說,這個標簽會指定對象是Applet還是Bean,同樣也會指定class的名字,還有位置,另外還會指定將從哪里下載這個Java插件.屬性:-type="bean | applet"將被執(zhí)行的插件對象的類型,你必須得指定這個是Bean還是applet,因為這個屬性沒有缺省值. -code="classFileName"將會被Java插件執(zhí)行的Java Class的名字,必須以.class結尾,這個文件必須存在于codebase屬性指定的目錄中. -codebase="classFileDirectoryName"將會被執(zhí)行的Java Class文件的目錄(或者是路徑),如果你沒有提供此屬性,使用本標簽的JSP文件的目錄會被使用.-name="instanceName"這個Bean或applet實例的名字,它將會在Jsp其它的地方調用. -archive="URIToArchive, ..."一些由逗號分開的路徑名,這些路徑名用于預裝一些將要使用的class,這會提高applet的性能.類似于classpath.-align="bottom | top | middle | left | right"圖形,對象,Applet的位置.
相關文章:
