1 / 53

JSP 语法

JSP 语法. JSP 程序的结构 JSP 指令 JSP 标签. JSP 程序的结构. 1.1 注释 注释分为两种,包括 HTML 注释和隐藏注释。 1 . HTML 注释:在客户端显示一个注释。 HTML 注释的 JSP 语法: <!-- comment [ <%= expression %> ] --> . 2 .隐藏注释:写在 JSP 程序中,但是不发给客户。 隐藏注释的 JSP 语法: <%-- comment --%> . 4.1.2  声明 在 JSP 程序中声明合法的变量和方法。 声明的 JSP  语法:

moral
Download Presentation

JSP 语法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSP语法 • JSP程序的结构 • JSP指令 • JSP标签

  2. JSP程序的结构 • 1.1 注释 • 注释分为两种,包括HTML注释和隐藏注释。 • 1.HTML注释:在客户端显示一个注释。 • HTML注释的JSP语法: • <!-- comment [ <%= expression %> ] --> 

  3. 2.隐藏注释:写在JSP程序中,但是不发给客户。2.隐藏注释:写在JSP程序中,但是不发给客户。 • 隐藏注释的JSP语法: • <%-- comment --%> 

  4. 4.1.2 声明 • 在JSP程序中声明合法的变量和方法。 • 声明的JSP 语法: • <%! declaration; [ declaration; ]+ ... %> 

  5. 例如: • <%! int i = 0; %>  • <%! int a, b, c; %>  • <%! Circle a = new Circle(2.0); %>  • 声明将要在JSP程序中用到的变量和方法。 • 也可以一次性声明多个变量和方法,只要以“;”结尾就行,当然这些声明在Java中必须是合法的。

  6. 当声明方法或变量时,请注意以下规则: • 声明必须以“;”结尾(Scriptlet有同样的规则,但是表达式就不同了)。 • 可以直接使用在<% @ page %>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。 • 一个声明仅在一个页面中有效。如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include file="文件所在的路径和名称" %>或<jsp:include file="文件所在的路径和名称" >元素包含进来。

  7. 4.1.3 表达式 • 这里指包含一个符合JSP语法的表达式。  • 表达式的JSP 语法: • <%= expression %>  • 例如: • <font color="blue"><%= map.size() %></font>  • <b><%= numguess.getHint() %></b> 

  8. 在JSP中使用表达式时需记住以下几点:  • (1)不能用分号(“;”)作为表达式的结束符,但是同样的表达式用在scriptlet中就需要以分号来结尾。 • (2)这个表达式元素能够包括任何在Java Language Specification中有效的表达式。  • 有时候表达式也能做为其他JSP元素的属性值。一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右。

  9. 4.1.4 scriptlet • scriptlet是一个有效的程序段。 • Scriptlet的JSP语法: • <% code fragment %> 

  10. 例如: • <%  • String name = null;  • if (request.getParameter("name") == null) {  • %>  • <%@ include file="error.html" %>  • <%  • } else {  • foo.setName(request.getParameter("name"));  • if (foo.getName().equalsIgnoreCase("integra"))  • name = "acura";  • if (name.equalsIgnoreCase( "acura" )) {  • %> 

  11. 描述: • 一个scriptlet能够包含多个jsp语句,方法,变量和表达式。 • 有了scriptlet,我们便能做以下的事: • (1)声明将要用到的变量或方法(参考声明)。  • (2)编写JSP表达式(参考表达式)。 • (3)使用任何隐含的对象和任何用<jsp:useBean>声明过的对象。 • (4)编写JSP语句(如果使用Java语言,这些语句必须遵从Java Language Specification)。

  12. 4.2 JSP指令 • 4.2.1 page指令标签 • Page 指令用于定义JSP文件中的全局属性。 • 1.Page 指令的JSP 语法: • <%@ page • [ language="java" ]  • [ extends="package.class" ]  • [ import="{package.class | package.*}, ..." ]  • [ session="true | false" ] 

  13. [ 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" ]  • %> 

  14. 例子: • <%@ page import="java.util.*, java.lang.*" %>  • <%@ page buffer="5kb" autoFlush="false" %>  • <%@ page errorPage="error.jsp" %> 

  15. 属性: • (1)language="java" • 声明脚本语言的种类,暂时只能用“java”。 • (2)extends="package.class" • (3)import="{package.class | package.* }, ..." • (4)session="true | false" • (5)buffer="none | 8kb | sizekb"

  16. (6)autoFlush="true | false" • (7)isThreadSafe="true | false" • (8)info="text" • (9)errorPage="relativeURL" • (10)isErrorPage="true | false" • (11)contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1"设置MIME类型 。

  17. 2.描述 • <%@ page %>指令作用于整个JSP页面,包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,比如 <jsp:include> 。 • 可以在一个页面中用上多个<% @ page %>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以能多用此属性几次。

  18. 无论<% @ page %>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。  无论<% @ page %>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。 

  19. 4.2.2 include指令 • include 指令的作用是,在JSP中包含一个静态的文件,同时解析这个文件中的JSP语句。 • 1.include 指令的JSP 语法: • <%@ include file="relativeURL" %> 

  20. 属性: • file="relativeURL" • 这个包含文件的路径名一般来说是指相对路径,不需要什么端口、协议和域名,如: "error.jsp""templates/onlinestore.html""/beans/calendar.jsp" 。 • 如果这个路径以“/”开头,那么这个路径主要是参照JSP应用的上下关系路径,如果路径是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件的当前路径。

  21. 2.描述 • <%@include %>指令将在JSP编译时插入一个包含文本或代码的文件,当使用<%@ include %>指命时,这个包含的过程是静态的。

  22. 4.3 JSP标签 • 4.3.1 include动作标签 • <jsp:include> • 这个标签包含一个静态或动态文件。  • 1.include动作标签的语法:

  23. <jsp:include page="{relativeURL | <%= expression%>}" flush="true" /> <jsp:include page="{relativeURL | <%= expression%>}" flush="true" />  • 或者  • <jsp:include page="{relativeURL | <%= expression %>}" flush="true" >  • <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+  • </jsp:include> 

  24. 属性: • (1)page="{relativeURL | <%= expression %>}" • 参数为一相对路径,或者是代表相对路径的表达式。 • (2)flush="true" • 这里必须使用flush="true",不能使用false值。默认值为false。

  25. 2.描述 • <jsp:include>元素允许包含动态文件和静态文件,这两种包含文件的结果是不同的。如果文件仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,如果这个文件动态的,那么这个被包含文件会被JSP编译器执行。

  26. 4.3.2 forward动作标签 • <jsp:forward> • forward动作标签重定向一个HTML文件,JSP文件,或者是一个程序段。  • 1.forward动作标签的JSP语法:

  27. <jsp:forward page={"relativeURL" | "<%= expression %>"} /> <jsp:forward page={"relativeURL" | "<%= expression %>"} />  • 或者  • <jsp:forward page={"relativeURL" | "<%= expression %>"} >  • <jsp:param name="parameterName"  • value="{parameterValue | <%= expression %>}" />+  • </jsp:forward> 

  28. 属性: • (1)page="{relativeURL | <%= expression %>}" • (2)<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+ • 向一个动态文件发送一个或多个参数,这个文件一定是动态文件。 

  29. 2.描述 • <jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。<jsp:forward>标签以下的代码,将不能执行。 • 能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数。 • 如果使用了非缓冲输出的话,那么使用<jsp:forward>时要小心。如果在使用<jsp:forward>之前,JSP文件已经有了数据,那么文件执行就会出错。

  30. 4.3.3 plugin动作标签 • <jsp:plugin> • 该指令执行一个Applet或Bean。 • JSP语法格式如下:

  31. <jsp:plugin type="bean|applet" • code="classFileName" • codebase="classFIleDirectoryName" • [name="instanceName"] • [archive="URLToArchive,…"] • [align="bottom|top|middle|left|right"] • [height="displayPixels"] • [width="displayPixels"] • [hspace="leftRightPixels"] • [vspace="topBottomPixels"]

  32. [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>

  33. plugin的属性如下: • (1)type="bean|applet" 指定将被执行的插件对象的类型。该属性必须指定是Bean 或是Applet,因为这个属性没有默认值。 • (2)code="classFileName" 指定将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。 • (3)codebase="classFIleDirectoryName" 指定将会被执行的Java Class文件的目录(或路径)。如果用户没有提供此属性,将使用<jsp:plugin>的JSP文件的目录。

  34. (4)name="instanceName" 该属性指定Bean或Applet实例的名字,它会在JSP其他的地方调用。 • (5)archive="URLToArchive,…" 指定一些由逗号分开的路径名。这些路径名用于预装一些将要使用的class,这会提高Applet的性能。 • (6)align="bottom|top|middle|left|right" 该属性用来指明图形、对象、Applet的位置,可以有bottom(位于底部)、top(位于顶部)、middle(位于中间)、left(位于左边)和right(位于右边)几种值。 • (7)height="displayPixels" width="displayPixels" 指定Applet或Bean将要显示的长、宽的值,此值为数字,单位为像素。

  35. (8)hspace="leftRightPixels" vspace="topBottomPixels" 指定Applet或Bean显示时在屏幕左右、上下所需留下的空间,单位为像素。 • (9)jreversion="JREVersionNumber|1.1" 指定Applet或Bean运行所需的Java Runtime Environment(JRE)的版本。默认值是1.1。 • (10)nspluginurl="URLToPlugin" 指定Netscape Navitator用户能够使用的JRE的下载地址,此值为一个标准的URL,如http://www.aspcn.com/jsp。 • (11)iepluginurl="URLToPlugin" IE用户能够使用的JRE的下载地址,此值为一个标准的URL,如 http://www.aspcn.com/jsp。

  36. (12)<jsp:params> • [<jsp:param name="parameterName" value="{parameterValue|<%expression%>}" />]</jsp:params> • 指定用户需要向Applet或Bean传送的参数或参数值。 • (13)<jsp:fallback>text message for user</jsp:fallback> 指定一段文字,用于Java插件不能启动时显示给用户,如果插件能够启动而Applet或Bean不能启动,那么浏览器会有一个出错信息弹出。

  37. 4.3.4 setproperty动作标签 • <jsp:include><jsp:forward><jsp:getProperty> • setproperty动作标签获取Bean的属性值,用于显示在页面中 。 • 1.setproperty动作标签的JSP语法: • <jsp:getProperty name="beanInstanceName" property="propertyName" />

  38. 属性: • (1)name="beanInstanceName" • 在用户所定义的范围中确认Bean的变量,用户能在后面的程序中使用此变量来分辨不同的Bean。 • (2)property="propertyName" • 该语句指定的bean的属性名。 

  39. 2.描述 • 这个<jsp:getProperty>元素将获得Bean的属性值,并可以将其使用或显示在JSP页面中。在使用<jsp:getProperty>之前,必须用<jsp:useBean>创建它。  • <jsp:getProperty>元素有一些限制。 • (1)不能使用<jsp:getProperty>来检索一个已经被索引了的属性 。 • (2)能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Bean一起使用。

  40. 技巧: • 如果使用<jsp:getProperty>来检索的值是空值,那么NullPointerException将会出现,同时如果使用程序段或表达式来检索其值,在浏览器上出现的将是Null(空)。

  41. 4.3.5 usebean动作标签 • <jsp:useBean> • 该标签创建一个Bean实例并指定它的名字和作用范围。 • 1.usebean动作标签的JSP语法: • <jsp:useBean  • id="beanInstanceName"  • scope="page | request | session | application"  • { 

  42. class="package.class" |  • type="package.class" |  • class="package.class" type="package.class" |  • beanName="{package.class | <%= expression %>}" type="package.class"  • } • {  • /> |  • other elements </jsp:useBean>  • } 

  43. 属性以及用法: • (1)id="beanInstanceName" • (2)scope="page | request | session | application" • 指定Bean存在的范围以及id变量名的有效范围。默认值是page。以下是详细说明。 

  44. ①page • ② request • ③ session • ④ application • (3)class="package.class" • (4)type="package.class"

  45. 2.描述 • <jsp:useBean>用于定位或示例一个JavaBean组件。<jsp:useBean>首先会试图定位一个Bean实例,如果这个Bean不存在,<jsp:useBean>就会从一个class或模板中进行示例。  • 为了定位或示例一个Bean,<jsp:useBean>会进行以下步聚,顺序如下。

  46. ① 通过给定名字和范围定位一个Bean。 • ② 对这个Bean对象引用变量以指定的名字命名。  • ③ 如果发现了这个Bean,将会在这个变量中储存这个引用。 • ④ 如果没有发现这个Bean,将会从指定的class中示例,并将此引用储存到一个新的变量中去。 • ⑤ 如果<jsp:useBean>已经示例(不是定位)了Bean,同时<jsp:useBean>和</jsp:useBean>中有元素,将会执行其中的代码。

  47. 4.3.6 setproperty动作标签 • <jsp:setProperty> • 该动作标签设置Bean中的属性值。 • 1.setproperty动作标签的JSP语法:

  48. <jsp:setProperty  • name="beanInstanceName"  • {  • property= "*" |  • property="propertyName" [ param="parameterName" ] |  • property="propertyName" value="{string | <%= expression %>}"  • }  • /> 

  49. 2.描述 • <jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。 • ① 通过用户输入的所有值(被作为参数存储中的request对象)来匹配Bean中的属性;  • ② 通过用户输入的指定的值来匹配Bean中指定的属性 ; • ③ 在运行时使用一个表达式来匹配Bean的属性。

  50. 4.3.7 param动作标签 • 1.param动作标签的JSP语法: • <jsp:plugin  • type="bean | applet"  • code="classFileName"  • codebase="classFileDirectoryName"  • [ name="instanceName" ]  • [ archive="URIToArchive, ..." ]  • [ align="bottom | top | middle | left | right" ]  • [ height="displayPixels" ]  • [ width="displayPixels" ] 

More Related