5.JSP页面的基本结构实例6.7.8.<%!intsum=0;9.intx=1;10.%>11.<%12.while(x<=10)13.{14.sum+=x;15.++x;16.}17.%>18.1加到10的结果是:<%=sum%>
19.现在的时间是:<%=newjava.util.Date()%>
20.21.本程序的功能是累加数字1到10,并将结果在页面第一行中显示,在页面第二行显示系统的当前时间,页面运行效果如图51所示。
图51页面运行效果从例51中可以看到,JSP页面除了比普通的HTML页面多一些Java代码、指令和动作外,两者的基本结构相似。实际上,JSP基本元素是嵌入在HTML页面中的,为了和HTML的标签进行区别,JSP标记都以“<%”或“”或“>”结尾。下面对该JSP文件进行详细解析。
第1行是JSP的page指令,它描述JSP文件转换成JSP服务器所能执行的Java代码时使用的控制信息,如JSP页面所使用的语言、对处理内容是否使用缓存、是否线程安全、错误页面处理、指定内容类型、指定页面编码方式等。例如,“contentType=\"text/html\"”用于指定内容类型,“pageEncoding=\"UTF8\"”用来指定页面编码方式。
第2行~第7行是一些HTML的常用标签,在第3章中已介绍,这里不再赘述。
第8行~第10行是JSP中的声明。JSP页面中的变量和方法与Java程序中变量和方法的使用是相同的,不过在JSP页面中声明以“<%!”或者“<%”开头,以“%>”结尾。本例中对两个整型变量声明并初始化,也可以写成“<%!intsum=0;intx=1;%>”。
第11行~第17行是JSP程序代码,即JSP脚本。JSP程序代码封装了JSP页面的业务处理逻辑——Java代码程序,以“<%”开头,以“%>”结尾。
第12行~第16行是一段标准的Java程序,其功能是实现1加到10的计算。
第18行,“1加到10的结果是:<%=sum%>
”中的“<%=sum%>”是表达式,在JSP中表达式以“<%=”开头,以“%>”结尾。本例中输出1加到10的结果。
第19行,“现在的时间是:<%=newjava.util.Date()%>
”中的“<%=newjava.util.Date()%>”是使用表达式以及Java类库中的Date类获取系统当前时间。
第20行和第21行是HTML的基本标签。
通过上面典型的JSP页面可以看出,JSP页面就是在HTML或者XML代码中嵌入Java语法或者JSP元素,从而实现系统的业务功能,这一点读者将会在以后的学习中有更深入的体会。
5.2JSP的脚本元素在JSP页面中,经常使用JSP的变量、方法、表达式、脚本、注释来实现一些功能,下面分别介绍这些基本元素的使用。
5.2.1变量和方法的声明在JSP页面中可以声明一个或者多个符合Java规范的合法变量和方法,声明的变量和方法将在本JSP页面使用,并将在JSP页面初始化时被初始化。
JSP中声明的语法格式如下:<%!语句1;…;\\[语句n;\\]%>其中,语句主要用来声明变量、方法。
例如:<%!inti=0;intj=i;%><%!intx,y,z,sum;%><%!Stringstr=\"北京!\";Stringname=\"小强\";%><%!Datedate=newjava.util.Date();%><%!privateStringuserName;privateStringpassword;publicStringgetUserName(){returnuserName;}publicvoidsetUserName(Stringname){userName=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}%>在声明变量和方法时,需要注意以下几点。
(1)声明以“<%!”或者“<%”开头,以“%>”结尾。
(2)变量声明必须以“;”结尾。
(3)变量和方法的命名规则与Java中变量和方法的命名规则相同。
(4)可以直接使用在<%@page%>中被包含进来的已经声明的变量和方法,不需要对其重新进行声明。
(5)一个声明仅在一个页面中有效。
如果想在每个页面都使用某些声明,最好把它们写成一个单独的文件,然后用<%@include%>指令或动作包含进来。
【例52】变量和方法的声明实例(declare.jsp)。<%@pagecontentType=\"text/html\"pageEncoding=\"UTF-8\"%>变量和方法的声明实例<%!Stringstr=\"学习也许是一时的痛,但不学是一辈子的痛!\";//声明字符串%><%!publicStringprint(){//声明方法returnstr;}%><%=print()%>图52declare.jsp运行效果declare.jsp运行效果如图52所示。
在文件declare.jsp中,声明了一个字符串变量str和一个方法print(),该方法可以返回字符串变量str的值。
5.2.2表达式JSP允许在“<%=”和“%>”之间插入一个表达式,表达式由变量、常量、运算符组成。表达式可以将数据转换成一个字符串并直接在网页上输出。
表达式的语法格式如下:<%=表达式%>JSP的表达式中没有分号。
JSP表达式常用在以下几种情况。
(1)向页面输出内容。
(2)生成动态的链接地址。
(3)动态指定form表单处理页面。
注意:在“<%”与“=”之间不要有空格。
【例53】表达式实例(expression.jsp)。<%@pagecontentType=\"text/html\"pageEncoding=\"UTF-8\"%>表达式实例<%!Stringname=\"清华大学出版社\";StringURLAddress=\"www.tup.com.cn\";Stringserver=\"www.sohu.com\";%>
用户名:<%=name%>
\">清华大学出版社网站
\">
本例演示了表达式的几种常用方式,运行效果如图53所示。
图53expression.jsp运行效果5.2.3脚本JSP脚本是一段Java代码,在请求期间执行,可以使用JSP页面所定义的变量、方法、表达式或者JavaBean。脚本定义的变量和方法在当前整个页面内有效,但不会被其他线程共享,用户对该变量的作用不会影响其他用户,当变量所在页面关闭时该变量就会被销毁。
脚本的语法格式如下:<%脚本语句%>【例54】脚本实例(scriptlet.jsp)。<%@pagecontentType=\"text/html\"pageEncoding=\"UTF-8\"%>
以下为对购买帮助不大的评价