教学材料《JSP设计与开发》-第3章 JSP语法_第1页
教学材料《JSP设计与开发》-第3章 JSP语法_第2页
教学材料《JSP设计与开发》-第3章 JSP语法_第3页
教学材料《JSP设计与开发》-第3章 JSP语法_第4页
教学材料《JSP设计与开发》-第3章 JSP语法_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第3章JSP语法基础学习要点JSP页面基本结构JSP注释JSP脚本元素JSP指令标记JSP动作标记2

3.1JSP页面基本结构

这里先介绍一下JSP的基本语法结构。JSP页面程序是在传统的静态页面程序中加入用Java描写的动态页面处理部分。一个JSP页面程序数据由两部分内容构成,元素数据(ElementData)和固定模板数据(TemplateData)。其中元素数据是指被JSP引擎所解释的元素类型的实例。除元素数据之外的任何数据都是固定模板数据,即JSP引擎无法解读的内容都是固定模板数据,JSP的固定模板数据通常指HTML及XML标记符的数据,这部分数据不被JSP引擎解释,通常原封不动地返回客户端浏览器,或由指定的组件处理。33.1.1案例一:元素(Elements)与模板数据(TemplateData)【案例功能】向客户端输出“HelloWorld”【案例目标】掌握JSP页面基本结构【案例要点】元素与模板数据的区别及应用【案例步骤】

(1)编写FirstJsp.jsp源代码文件。(2)启动Tomcat服务器后,运行结果如图3-1所示。453.1.2JSP元素JSP的元素类型类型有3种:脚本元素、指令元素和标准操作元素。其中JSP脚本元素包括声明、表达式和Java程序语句,书写在标签<%和%>之间。三个部分共同作用完成一个JSP页面。在此值得注意的是,JSP元素的命名对大小写敏感。下面对JSP元素分别一一详细介绍。63.2JSP注释

3.2.1JSP注释概述JSP注释是程序员写入JSP的、不影响运行结果的程序注解。它的目的一般在于对程序元素的功能进行说明。注解必须使用特殊的标记以区别于HTML模板和元素。3.2.2JSP注释分类JSP提供了两类注释的方法:一类注释是对JSP网页自身的注释;另一类注释是会出现在发送给客户的生成网页中的注释。

7JSP网页自身注释JSP网页自身注释又称隐藏式注释,它是对JSP程序进行的注释,服务器不会把它发送到客户端,对客户而言,是看不见即隐藏的。其语法格式如下:<%--comment--%>或者<%/**thisisacomment**/%>客户端可以看到的批注生成发送到客户端的注释又称“嵌入式注释”,一般采用HTML及XML的语法格式:

<!--comment-->JSP引擎对此类注释不做任何解释,而直接将其返回给客户端的浏览器,其结果是会在客户端页面中显示一个注释;同时,客户在查看源代码时可以看到这条注释。8但需要注意的是,在这种注释中可以出现动态数据,这是与一般HTML注释最大的不同之处。注释中的动态数据是通过表达式(expression)来表示的,其语法格式如下:<!—注释<%=expression%>注释-->

例如:

<!--现在时间为:<%=(newjava.util.Date()).toLocaleString()%>-->在客户端的HTML源文件中显示为:

<!--现在时间为:January1,2010-->93.2.3案例二:注释【案例功能】看到两种注释不同的效果。【案例目标】掌握JSP注释的使用方法。【案例要点】页面中指定表单元素名称、Servlet根据名称读取表单元素、Servlet把读取的表单元素值输出到客户端。(1)编写源代码comment.jsp。(2)启动Tomcat服务器后,运行结果如图3-2所示。103.3JSP脚本元素

JSP的脚本元素是用来在JSP中包含脚本代码,以<%开始并以%>结束,通常是Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式的求值。在JSP中的脚本元素有:声明、表达式和程序代码段(Scriptlet)。113.3.1JSP声明元素声明是用来声明在JSP网页程序中将会用到的变量和方法。在JSP中使用这些变量和方法前,必须事先声明。声明语句必须符合指定脚本语言(Java)的语法规范。声明的语法格式如下:<%!Declaration(s)%>一次可以声明一个或多个变量和方法,变量在声明时可以设置初始值。声明的内容会插入最终生成的Servlets中,但不会产生任何传送到客户端的数据。123.3.2案例三:求两数之和【案例功能】向客户端输出两个数之和【案例目标】掌握JSP如何声明元素【案例要点】声明元素【案例步骤】(1)编写declare.jsp源代码文件。(2)启动Tomcat服务器后,运行结果如图3-4所示。133.3.3案例四:用synchronized块来操作页面级变量【案例功能】在线投票页面【案例目标】掌握多用户共享页面级变量【案例要点】synchronized关键字【案例步骤】(1)编写declare2.jsp源代码文件。(2)启动Tomcat服务器后,运行结果如图3-5所示。143.3.4JSP表达式元素在JSP页面中,一个表达式元素(Expression)在被JSP引擎执行后会被自动转化为字符串,然后显示出来。Expressions标签是以<%=为起始,%>为结尾,其中间内容包含一段合法的Java表达式:

<%=expression%>例如,

<fontcolor="blue"><%=getName()%></font><%=(newjava.util.Date())%>15使用表达式的注意事项:不能使用分号“;”来作为表达式的结束符号,如下:

<%=(newjava.util.Date()).toLocaleString();%>

是错误的。同样的表达式,用在Scriptlet(脚本元素)中就需要以分号来结尾。我们可以通过查看JSP转义生成的Servlet源程序,来了解JSP容器是如何处理<%=%>的,例如,JSP代码

<%=(newjava.util.Date())%>

在生成的Servlet源文件中,将会以下面的形式出现在_jspService方法中:

out.println(newjava.util.Date());

由此可见,JSP容器对表达式元素的处理是非常简单的,它所做的工作只是在JSP表达式外包装了out.println()方法。163.3.5JSP脚本小程序元素JSP脚本小程序元素是一段有效JSP脚本语言程序段(目前可认为是Java程序段),该程序段内容必须符合相应脚本语言的语法规定。它的语法格式如下:<%JSP脚本小程序元素(Scriptlet)%>当JSP引擎处理客户端请求时,脚本小程序元素会在请示时被执行。Scriptlet是否有输出到客户端浏览器的内容完全取决于脚本小程序元素内部程序段的内容。在一个JSP页面中,可以有多个脚本小程序元素。在一个脚本小程序元素中声明的变量是JSP页面的局部变量,只在当前页面中有效。173.3.6案例五:脚本小程序元素应用【案例功能】统计访问网站的人数。【案例目标】掌握JSP脚本元素中变量的特性。【案例要点】JSP声明元素和脚本元素中都可以定义变量,但二者中定义的变量作用域是由区别的。【案例步骤】(1)编写源代码scriptlet.jsp。(2)启动Tomcat服务器后,无论如何刷新,运行结果如图3-6所示。18(3)如果把程序中第2行代码由<%inti=0;%>改为<%!inti=0;%>,则运行结果如图3-7所示随着页面的不断刷新操作,访问网站的人数也在递增。193.4JSP指令元素在JSP页面中,可以使用JSP指令指定网页的有关输出方式、引用包、加载文件等相关设置。JSP指令包括Page指令、Include指令和Taglib指令。指令并不会输出任何数据至客户端,且有效范围仅限于使用该指令的JSP网页。指令的语法如下:<%@指令名称属性1=,属性2=,…%>203.4.1page指令元素page指令是针对当前页面的指令。page指令有“<%@”和“%>”字符串构成的标记符来指定。在标记符中是代码体,包括指令的类型和值。例如:“<%@pageimport=“java.sql.*”%>”指令告诉JSP容器将java.sql包中的所有类都引入当前的JSP页面。在一个JSP页面中可以使用多个page指令来指定属性及其值,但除import属性外,其他属性只能使用一次page指令为该属性设置值,即使设置的值相同也不行,例如,在一个JSP页面中出现下面语句是错误的。<%@pagelanguage=”java”%><%@pagelanguage=”java”%>21使用import属性可以在JSP页面导入多个类包,你可以使用多个page指令,也可以在一个page指令中使用“,”为import属性赋多个值,例如在一个JSP页面中引入:java.util.*,java.io.*,java.sql.*3个包,可以写为:%@pageimport=“java.util.*”%%@pageimport=“java.io.*”%%@pageimport=“java.sql.*”%也可以写为:<%@pageimport=“java.util.*”,“java.io.*”,”java.sql.*”%>对page指令的各个属性值解释如表3-1所示。223.4.2案例五:page指令应用示例【案例功能】以excel表格形式显示页面内容。【案例目标】掌握page指令的用法。【案例要点】JSP指令元素中contentType属性应用。【案例步骤】(1)编写源代码excel.jsp。(2)启动Tomcat服务器后,运行结果如图3-8所示。233.4.3include指令元素include指令用来指定怎样把另一个文件包含到当前的JSP页面中,这个文件可以是普通的文本文件,也可以是一个JSP页面。例如:“<%@includefile=”logo.htm”%>”。这个包含的过程是静态的,而包含的文件可以是JSP网页、HTML网页、文本文件,或是一段Java程序。采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。243.4.4案例六:include指令元素操作示例【案例功能】在文本框内输入一个数字,然后输出该数的阶乘。【案例目标】掌握include指令的用法。【案例要点】在一个JSP程序中包含了另一个JSP程序。【案例步骤】(1)编写源代码include.jsp。(2)启动Tomcat服务器后,运行结果如图3-9所示。253.4.5taglib指令元素标签数据库指令taglib用于定义一个标签库及自定义标签的前缀,语法为:<%@tagliburl=”扩展标签的URI”prefix=”扩展标签的前缀”%>例如定义标签库pe4j-taglib和前缀pe4j的代码为:

<%@tagliburl=”/pe4j-taglib”prefix=”pe4j”%>这样,在HTML中可以使用标签库pe4j-taglib中定义的标签,例如:<pe4j:literalkey=”Crop”subsystem=”SYS”/><pe4jCORPCOMBOname=”CorpCombo”SELECTEDVALUE=”<%=CorpID%>”ONCHANGE=”fnc_OnCorpChange()”/>263.5JSP标准操作元素

动作控制标签是一种特殊的标签,用于执行一些标准常用的JSP网页动作,例如将网页转向、使用JavaBean,设置JavaBean的属性等。操作指令包括:jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。273.5.1include操作jsp:include标准动作用于在当前的JSP页面中加入静态和动态的资源。语法格式为:<jsp:includepage=“URL”><jsp:paramNAME=”参数名称1”VALUE=“值1”/>

<jsp:paramNAME=”参数名称2”VALUE=“值2”/>

…</jsp:include>jsp:include指令必须以“/”结束,功能和include指令相同。283.5.2案例六:include动作应用示例【案例功能】用include动作完成页面的包含,并传递相应的参数。【案例目标】掌握include动作的用法。【案例要点】参数的传递以及与include指令的区别。【案例步骤】(1)编写源代码include_action.jsp。(2)编写源代码welcome.jsp。(3)启动Tomcat服务器后,运行结果如图3-10所示。29(4)修改include_action.jsp中第9行代码,将value值改为5,运行结果如图3-11所示。303.5.3forward操作<jsp:forward>动作将客户端所发出来的请求,从一个JSP网页转交给另一个JSP网页。forward动作将会引起Web服务器的请求目标转发。转发的工作机制与重定向不同,这些工作都是在服务器端进行的,不会引起用户端的二次请求,因此效率较重定向要高。不过有一点要特别注意,<jsp:forward>标签之后的程序将不能执行。语法

<jsp:forwardpage=URL>

<jsp:paramname=“参数名称1”value=“值1”/><jsp:paramname=“参数名称2”value=“值2”/>

</jsp:forward>

与include动作相同,可以使用jsp:param设定转发的请求参数。取得参数时,方法为:Request.getParameter(“参数名称”);313.5.4案例七:forward动作应用示例【案例功能】用forward动作完成页面的转向,并传递相应的参数。【案例目标】掌握forward动作的用法。【案例要点】转向后的执行。【案例步骤】(1)编写源代码ForwardFrom.jsp。(2)编写源代码ForwardTo.jsp。(2)启动Tomcat服务器后,运行结果如图3-13所示。(3)启动Tomcat服务器后,运行结果如图3-12所示。32333.5.5plugin操作该指令的作用是确保一个Java插件软件可用,可以在浏览器中播放或者显示一个对象(典型的就是applet和bean),一般来说,<jsp:plugin>元素会指定对象是applet还是bean,同样也会指定class的名字及位置,另外还会指定从哪里下载这个插件.<jsp:plugin>元素的语法格式如下:<jsp:pluginType=”bean|applet”Code=”保存类的文件名称”Codebase=”类路径”[name=”对象名称”[archive=”相关文件路径”[align=”对齐方式”34[height=”高度”[width=”宽度”

[hspace=”水平间距”[vspace=”垂直间距”

[jreversion=”Java环境版本”[nspluginurl=”供NC使用的plugin加载位置”[iepluginurl=”供ie使用的plugin加载位置”<jsp:params><jsp:paramname

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论