要掌握页面成员变量和方法的声明格式。程序片的编写表达式的使用技术重点掌握page和include指令标记的使用方法和技巧掌握jsp:include、jsp:forward和jsp:param动作标记的使用方法。JSP的语法规则是学习后续章节的基础,读者要仔细研究打好基础。3.1JSP页面的基本结构3.2JSP脚本元素3.3注释3.4JSP指令标记3.5JSP动作标记3.6上机实训JSP页面由7种元素组成:(1)普通的HTML标记。(2)JSP指令标记。(3)JSP动作标记,以“jsp:”开头,以“/或/jsp:动作”结束的标记。(4)变量声明与方法声明(Declaration)。(5)程序片(Scriptlet)。(6)表达式(Exception)。(7)注释(Comment)。ch3_1.jsp文件内容:1%@pagecontentType=text/html;charset=GB2312%!--jsp指令标记--2%@pageimport=java.util.Date%!--jsp指令标记--3%!DatedateTime;//变量声明4intcountNum;5publicvoidsetCount(){//方法声明6countNum++;7}8%9html!--HTML标记--10bodybgcolor=cyan11fontsize=4p程序片创建dateTime对象:12%dateTime=newDate();//java程序片13out.println(p服务器系统时间:+dateTime);14setCount();15Stringstr=request.getRemoteAddr();16%17p您是第18%=countNum%!--表达式--19位访问者!您的电脑的IP地址是:20%=str%!--表达式--21/font22/body!--HTML标记--23/html3.2.1变量与方法的声明变量和方法在“%!”和“%”标记之间声明,声明变量和方法的语法和格式同Java语言。声明的语法格式如下:%!declarations%1.变量声明声明变量就是在“%!”和“%”标记之间放置Java的变量声明语句。变量的数据类型可以是Java的任何数据类型。例如:%!DatedateTime;intcountNum;%此变量为全局变量3.2.1变量与方法的声明2.方法声明◦“%!”方法“%”◦“%!”和“%”之间声明的方法在整个页面内有效,称为页面的成员方法;◦方法内声明的变量称为局部变量,只在方法内有效,方法调用为其分配空间,调用完毕释放变量空间;全局变量在所有客户之间该页面有效。3.2.1变量与方法的声明3.2.1变量与方法的声明ch3_2.jsp文件内容:%@pagecontentType=text/html;charset=GB2312%%@pageimport=java.util.*%%!intsum=0;publicintsumMethod(intbegin,intend){intsubsum=0;for(;begin=end;begin++){subsum+=begin;}sum+=subsum;returnsubsum;}%3.2.1变量与方法的声明htmlbodybgcolor=cyan%//调用sumMethod方法out.println(p10到20之间的数之和是:+sumMethod(10,20));out.println(p页面变量sum的值为:+sum);//调用sumMethod方法out.println(p20到30之间的数之和是:+sumMethod(20,30));out.println(p页面变量sum的值为:+sum);%/body/html3.2.2程序片段◦在“%”和“%”标记之间放置的Java代码称为Java程序片。◦一个JSP页面可以有多个Java程序片。程序片中声明的变量称为程序片变量,是局部变量。程序片变量的有效范围与其声明位置有关,即从声明位置向后有效,可以在声明位置后的程序片、表达式中使用3.2.2程序片段ch3_3.jsp文件代码:%@pagecontentType=text/html;charset=GB2312%!--jsp指令标记--%!intlucknum=0,count=0;publicsynchronizedvoidcountNum(){count++;lucknum=count%10;}%3.2.2程序片段html!--HTML标记--bodybgcolor=cyanfontsize=4%countNum();//程序片intnum=(int)(Math.random()*10)+1;if(num==lucknum){%p您访问的幸运数是:%=num%%}else3.2.2程序片段else{%p您抽取的数字是:%=num%p您是第%=count%个访问者%}%/font/body/html3.2.3表达式◦在“%=”和“%”标记之间放置Java表达式,可以直接输出Java表达式的值。◦表达式的值由服务器负责计算,并将计算值转换成字符串发送给客户端显示。表达式在JSP编程中较常用,特别是在与HTML标记混合编写时使用较多。3.2.3表达式ch3_4.jsp文件代码:%@pagecontentType=text/html;charset=GB2312%!--jsp指令标记--html!--HTML标记--bodybgcolor=cyanfontsize=4%charbegin='A';/*Java程序片*/intix=13;%fontcolor=bluep蓝色输出前13个字母:br!--插入Html标记--3.2.3表达式%/*Java程序片*/for(;begin'A'+ix;begin++){%%=begin%!--Java表达式--%}%/fontfontcolor=greenp绿色输出后13个字母:br!--插入Html标记--%for(;begin'N'+ix;begin++){%3.2.3%=begin%!--Java表达式--%}%/font/font/body/html表达式3.3.1输出型注释◦输出型注释是指会被JSP引擎发送给客户端浏览器的注释,这种注释可以在浏览器的源码中看到,浏览器将其作为HTML的注释处理。输出型注释的内容写在“!--”和“--”之间,格式如下:◦!--注释内容[%=表达式%]--◦例如:◦!--下面是Java的程序片--3.3.2隐藏型注释“%--”和“--%”之间加入的内容称为隐藏型注释。它们会被JSP引擎忽略,不会发送的客户端,格式如下:%--注释内容--%一般写在Java程序片的前面,对程序片作出说明。程序片中也可以使用Java语言的注释方法,例如://注释内容/*注释内容*//**注释内容*/下面是隐藏注释的示例:body!--程序加载时间:%=(newjava.util.Date()).toLocaleString()%输出型注释--%--展示时间数据的Java程序片(隐藏注释)--%%//创建日期型对象DatedateNow=newDate();/*相对于1900年设置奥运会开幕时间*/DatedateTemp=newDate(108,7,8);客户端对应的html文件htmlbody!--程序加载时间:2008-8-110:45:46输出型注释--centerp距北京2008奥运会开幕还有brfontcolor=redsize=86天/fontp今天是:FriAug0110:45:46CST2008p北京奥运会开幕:FriAug0800:00:00CST2008/center/body/htmlJSP指令标记为JSP页面转译提供整个页面的相关信息。JSP指令标记的使用格式:◦%@directive{attribute=value}*%◦%@字符串作为指令的起始标记,“”、“%”和“@”之间不能加空格,作为一个整体使用。JSP指令标记有三种:Page、Include和Taglib,下面介绍Page和Include其具体使用方法。3.4.1page指令标记page指令用来指定整个JSP页面的一些属性的属性值,属性值用双引号括起来。使用格式如下:%@page属性1=属性值属性2=属性值┄%或%@page属性1=属性值%%@page属性2=属性值%┆3.4.1page指令标记page指令可以设置的属性有contentType、import、pageEncoding等。(1)contentType属性该属性用来设置JSP页面的MIME(MultipurposeInternetMailExtention)类型和字符编码集,取值格式为MIME类型或MIME类型;charset=字符编码集。下面的设置:%@pagecontentType=text/html;charset=GB2312%3.4.1page指令标记(2)import属性该属性用来导入页面中要用到的包或类,导入的包或类可以是Java环境的核心类,也可以是用户自己编写的包或类。可以为该属性指定多个值,例如:%@pageimport=java.io.*,java.util.Date%默认情况下,JSP页面import属性已有如下值:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*3.4.2include指令◦include指令用于在JSP页面静态插入一个文件,被插入的文件可以是JSP页面、HTML网页、文本文件或一段Java代码。◦使用了include指令的JSP页面在转换成Java文件时,将被插入的文件在当前JSP页面出现该指令的位置做整体插入,合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。3.4.2include指令◦include指令的使用格式为:%@pageincludefile=文件的url%◦插入文件可以使用绝对路径和相对路径,一般要使用相对路径。◦下面是一个使用include指令的例子:◦请注意观察指令代码:head.txt文件保存在ch3目录中,内容如下:%@pagecontentType=text/html;charset=GB2312%h1XX省职称计算机考试报名系统/h1left.txt文件保存在ch3目录中,内容如下:%@pagecontentType=text/html;charset=GB2312%h3左侧菜单/h3pahref=ch3_7_1.jsp考生报名/a/ppahref=ch3_7.jsp返回主页/a/pfooter.txt文件保存在ch3目录中,内容如下:◦%@pagecontentType=text/html