JSP运行机制与基本语法.ppt

上传人:牧羊曲112 文档编号:6510442 上传时间:2023-11-07 格式:PPT 页数:88 大小:450.50KB
返回 下载 相关 举报
JSP运行机制与基本语法.ppt_第1页
第1页 / 共88页
JSP运行机制与基本语法.ppt_第2页
第2页 / 共88页
JSP运行机制与基本语法.ppt_第3页
第3页 / 共88页
JSP运行机制与基本语法.ppt_第4页
第4页 / 共88页
JSP运行机制与基本语法.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《JSP运行机制与基本语法.ppt》由会员分享,可在线阅读,更多相关《JSP运行机制与基本语法.ppt(88页珍藏版)》请在三一办公上搜索。

1、JSP运行机制与基本语法,内容概述,本章首先介绍JSP的运行机制,然后介绍JSP的基本语法,包括JSP的页面结构、注释、声明、表达式、脚本段以及JSP指令和JSP动作。,4.1.1 JSP应用实例,【例4.1】在页面上动态输出一段文本(firstjsp.jsp)。firstjsp.jsp代码如下:第一个JSP页面,处于“”中的部分为JSP代码,将文件firstjsp.jsp保存到Tomcat安装目录下的webapps/jspbasic/WebRoot目录下,然后在IE地址栏中填入地址http:/localhost:8080/jspbasic/WebRoot/firstjsp.jsp则可执行代码

2、。,图4.1 例4.1文本输出结果,上例中看到“Hello World!”的输出后,转到Tomcat安装目录下的workCatalinalocalhost目录,在_orgapachejsp目录下,可以看到两个文件:“firstjsp_jsp.java”和“firstjsp_jsp.class”这两个文件就是在我们访问firstjsp.jsp文件时,由JSP引擎生成的,4.1.2 JSP运行机制,JSP是服务器端技术,在服务器端,JSP引擎解释JSP代码,然后将结果以HTML或XML页面形式发送到客户端,在客户端的用户是看不到JSP代码的。,当第一次加载JSP页面时,因为要将JSP文件转换为Se

3、rvlet类,所以响应速度较慢。当再次请求时,JSP容器就会直接执行第一次请求时产生的Servlet,而不会再重新转换JSP文件,所以其执行速度较快。,4.1.3 JSP的特点,JSP的主要特点如下:1.把内容的生成和显示分离2.生成可重用的组件3.应用标记简化页面的开发4.具有Java的特点,4.2 JSP基本语法,4.2.1 JSP页面组成JSP代码放在特定的标签中,然后嵌入到HTML代码中。开始标签、结束标签和元素内容 三部分统称为JSP 元素(Elements)。,JSP元素可分成三种不同的类型:脚本元素(Scripting)指令元素(Directive)动作元素(Action),脚本

4、元素规范JSP 网页所使用的Java 代码,包括:HTML注释、隐藏注释、声明、表达式和脚本段。指令元素是针对JSP引擎的,并不会直接产生任何看得见的输出。包括:inc1ude指令、page指令和taglib指令。动作元素利用XML语法格式的标记来控制Servlet引擎的行为。,4.2.2注释,注释增加了程序的可读性与可维护性,应该养成写注释的好习惯。JSP文件的注释有两种:HTML注释和隐藏注释。,HTML注释,发送到客户端,但不在浏览器上显示,在客户端可通过查看源文件看到。语法:-,JSP注释,写在JSP程序代码中,不发送到客户端语法:,4.2.3声明,在JSP程序中用到的变量和方法是需要

5、声明的声明的语法如下:例如:,应注意的规则,声明必须以“;”结尾;可以一次声明多个变量和方法,必须以“,”分开,以“;”号结尾。声明的范围通常是JSP页面,但如果页面中使用include指令包含其他页面,范围应扩展到被包含的页面。可以直接使用在指令中包含进来已经声明了的变量和方法,不需要重新进行声明。一个声明仅在一个页面中有效。如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用include或jsp:inc1ude动作包含进来。,4.2.4表达式,JSP的表达式是由变量、常量组成的算式,它将JSP生成的数值嵌入HTML页面,用来直接输出Java代码的值。表达式的语法规则如下:,

6、使用表达式时的注意事项:,不能用一个分号(“;”)来作为表达式的结束符。“%=”是一个完整的标记,中间不能有空格。表达式元素包含任何在Java语言规范中有效的表达式。表达式可以成为其他JSP元素的属性值。一个表达式可以由一个或多个表达式组成,按从左到右的顺序求值。,4.2.5 JSP脚本段,JSP脚本段(Scriplet)是一段Java代码。可以包含任意行合法的脚本语句,脚本段是一个代码片断,在服务器处理请求过程中被执行。其语法规则如下:,4.2.6 JSP基本语法应用案例,【例4.3】根据Web服务器系统的时间,显示不同时间段的问候。greeting.jsp代码清单如下:JSP基本语法应用案

7、例,4.2.6 JSP基本语法应用案例,=0%,程序运行结果如图4.6所示。,4.3 JSP指令,4.3.1 JSP指令功能 JSP指令是一些特殊的JSP语句,它是为JSP引擎而设计的 他们并不直接产生任何可见输出,只是告诉引擎如何处理其余JSP页面。这些指令被括在“”标记中。pageincludetaglib:用来定义一个标记库以及标记的前缀。,4.3.2 include指令,若想在JSP网页中插入其他的文件,有两种方式:include指令jsp:include动作。,include指令,include指令称为文件加载指令,可以将其他的文件插入JSP网页,被插入的文件可以是JSP文件、HTM

8、L文件或者其他文本文件,但是必须保证插入后形成的新文件符合JSP页面的语法规则。其指令形式如下:include指令只有一个属性:file。,Include指令的使用例子,systemTime.html输出系统的日期和时间includeDirec.jsp中通过include指令将systemTime.html文件包含进来。,systemTime.html代码,includeDirec.jsp代码,include指令实例现在的日期和时间是:,4.3.3 page指令,page指令称为页面指令几乎在所有JSP页面顶部都会看到page指令。,page指令的语法规则,page指令的常用属性,import

9、用来导入将要用到的一个或多个包/类,page指令的常用属性,errorPage这个属性值为一个URL路径指向的JSP网页,在指向的JSP网页中处理初始JSP网页上产生的错误通常在指向的JSP网页上都会设置“isErrorPage=true”。,page指令的常用属性,isErrorPage这个属性的默认值为“false”isErrorPage用来指定目前的JSP网页是否是另一个JSP网页的错误处理页,通常与errorPage属性配合使用。,page指令的常用属性,contentType用来指定JSP网页输出到客户端时所用的MIME类型和字符集默认MIME类型是“text/html”,默认的字符

10、集是“ISO-8859-1”如果想输出简体中文,字符集需要被设置为“gb2312”。,注意事项,在一个页面中可以使用多个指令,分别描述不同的属性每个属性只能用一次,但是import指令可以多次使用。指令区分大小写。,4.3.4 taglib指令,taglib指令用来定义一个标记库以及标记的前缀,其语法规则如下:,4.3.5 JSP指令应用案例,【例4.5】page指令的用法。本例包括2个文件pageDirec.jsp为主页面,在本页面中,通过page指令指定当页面发生错误时转向的页面为errorPageDirec.jsp在错误转向页面通过显示相关信息提示用户访问出错。,文件pageDirec.

11、jsp代码:,page指令示例,文件errorPageDirec.jsp代码如下,错误页面你访问的页面发生了错误!本文件的page指令isErrorPage=true指定该文件为错误处理文件,只能通过其他页面发生错误而转向它来运行。,本例运行结果如图4.8所示,4.4 JSP动作,4.4.1 JSP动作功能JSP动作元素用来控制JSP引擎的行为可以动态插入文件、重用JavaBean组件、导向另一个页面等。,JSP的动作元素,jsp:include动作:在页面得到请求时包含一个文件。jsp:forward动作:引导请求者进入新的页面。jsp:plugin动作:连接客户端的Applet或Bean插

12、件。jsp:useBean动作:应用JavaBean组件。jsp:setProperty动作:设置JavaBean的属性。jsp:getProperty动作:获取JavaBean的属性并输出。,需要注意的是,JSP动作元素的形式都是以XML为标准的,而XML中大小写是敏感的因此jsp:useBean不等于jsp:usebean,前者是标淮的动作元素,而后者什么都不是,在实际使用时一定要注意。,4.4.2 jsp:include动作,jsp:include动作在即将生成的页面上动态的插入文件,它在页面运行时才将文件插入,对被插入文件进行处理。也就是说它是在页面产生时插入文件,其语法如下:或,in

13、clude指令和jsp:include动作区别,1include指令是静态的,是在JSP文件被转换成Servlet的时候引入文件,它把被插入文件插到当前位置后再进行编译2jsp:include动作是动态的,插入文件的时间是在页面被请求的时候。JSP引擎不把插入文件和原JSP文件合并成一个新的JSP文件,而是在运行时把被插入文件包含进来。注意:如果包含页面时需要传递参数,则只能使用jsp:include动作,jsp:include动作应用示例,在newBook.jsp代码中插入了4个文件newbook1.html newbook2.html newbook3.html newbook4.html

14、 这4个文件分别表示4本新书的信息,newBook.jsp文件代码,jsp:include 动作示例新书展示,4.4.3 jsp:forward动作,用于停止当前页面的执行,转向另一个HTML或JSP页面。在执行中JSP引擎不再处理当前页面剩下的内容,缓冲区被清空。在客户端看到的是原页面的地址,而实际显示的是另一个页面的内容。,jsp:forward动作的语法规则,或,jsp:forward动作应用示例,常见的登录模块 本例包含四个文件login.jsp为用户登录界面,用户输入用户名和密码提交表单后,由文件loginReceive.jsp接收用户的输入如果输入正确则转到文件loginCorre

15、ct.html如果输入错误则转到loginError.html。,文件login.jsp的主要代码,.姓名 密码,loginReceive.jsp的主要代码,.,loginCorrect.html文件显示登陆成功信息loginError.html文件显示登录失败的信息,4.4.4 jsp:plugin动作,jsp:plugin动作的功能是将服务器端的Java小应用程序(Applet)或JavaBean组件下载到浏览器端去执行相当于在客户端浏览器插入Java插件。,jsp:plugin动作的语法规则,jsp:plugin type=“bean|applet”code=“保存类的文件名”codeb

16、ase=“类路径”name=“对象名”archiv=“相关文件路径”align=“bottom|top|middle|left|right”/对齐方式 height=“displayPixels”/高度 width=“displayPixels”/宽度 hspace=“leftRightPixels”/水平间距 vspace=“topBottomPixels”/垂直间距,jsp:plugin动作的语法规则,jreversion=“Java环境版本”nspluginurl=“供NC使用的plugin加载位置”iepluginurl=“供IE使用的plugin加载位置”错误信息,jsp:plugi

17、n动作常用属性,1.type=“bean|applet”指定将被执行的插件对象的类型是Bean还是Applet。2.code=“保存类的文件名”指定Java插件将要执行的字节码(Java Class)文件的名字,其后缀必须是.class。这个文件必须保存在由codebase属性指定的目录里。3.codebase=“类路径”说明将要被下载的Java Class文件的目录。4.name=“对象名”bean或applet实例的名字。,jsp:plugin动作常用属性,错误信息一段文字,当Java插件不能启动时,这段文字向用户显示如果插件能够启动而applet或Bean不能执行,那么浏览器弹出一个错误

18、信息。,jsp:plugin动作应用示例,在文件plugin.jsp中使用jsp:plugin动作下载名为RollingMessage.java的java小程序,文件plugin.jsp主要代码,用<jsp:plugin>加载Applet,RollingMessage.java程序需要先编译,形成字节码文件RollingMessage.class 此Applet的功能是输出一行滚动显示的文字“欢迎学习“Java Web应用”!”,4.4.5 jsp:useBean动作,1 jsp:useBean动作功能jsp:useBean动作用来装载一个将要在JSP页面中使用的JavaBean。它创

19、建一个JavaBean实例并指定其名字和作用范围。实际工程中常用JavaBean做组件开发,而在JSP中只需要声明并使用这个组件,这样可以较大限度地实现静态内容和动态内容的分离,这也是JSP的优点之一。,2 jsp:useBean语法规则,在JSP中实例化一个bean的最简单的方法如下:,scope=”有效范围”,该属性的取值有四种:page,request,session和application,默认值是page。取不同值含义如下:page:该JavaBean只有在当前页面及当前页面所包含的静态页面有效;request:该JavaBean的有效范围是当前的客户请求;session:该Java

20、Bean的有效范围是当前客户的会话期间;application:该JavaBean对所有具有相同ServletContext的页面都有效,即从创建开始,所有客户端共享这个JavaBean,直至服务器关闭时才取消这个bean。,还可以通过下面的形式实例化一个JavaBean:实体,实体的内容可以是:合法的JSP程序代码 和标签一般的HTML代码注意:这种实例化形式下,只有当第一次实例化bean时才执行实体部分,如果是利用现有的bean实例则不执行实体部分。jsp:useBean并非总是意味着创建一个新的bean实例。,3 jsp:useBean工作过程,JSP引擎根据useBean中id属性指定

21、的名字,在一个同步块中,查找内置对象pageContext中是否包含该id指定的名字和scope指定的作用域的对象。如果该对象存在,JSP引擎把这样一个对象分配给用户。如果不存在则创建新的bean实例。,4.4.6 jsp:setProperty动作,用来设置已经实例化的bean对象的属性 1.jsp:setProperty动作的两种语法规则第一种是直接将属性值设置为字符串或表达式,形如:,第二种方法用request的参数值来设置JavaBean的属性值,request参数的名字和JavaBean属性的名字可以不同,其语法规则如下:,2.jsp:setProperty动作的两种用法,首先,可以

22、在jsp:useBean元素的外面使用jsp:setProperty:jsp:useBean id=myName./.jsp:setProperty name=myName property=someProperty./此时,不管jsp:useBean是找到了一个现有的bean,还是新创建了一个bean实例,jsp:setProperty都会执行。,第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:jsp:useBean id=myName.jsp:setProperty name=myName property=someProperty./jsp:u

23、seBean此时,jsp:setProperty只有在新建bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。,4.4.7 jsp:getProperty动作,用来获取beans的属性值,将其转换成字符串,然后输出。其语法规则如下:注意:jsp:setProperty动作和jsp:getProperty动作必须与jsp:useBean动作一起使用,不能单独使用。,4.4.8 JSP动作应用案例,读者选购图书,其中包含了3个程序。bookSelect.html为读者选购图书界面,由action属性指定提交到页面bookReceive.jsp处理。bookReceiv

24、e.jsp接收bookSelect.html传输的信息,然后使用jsp:useBean动作创建名为book的beans组件,使用jsp:setProperty和jsp:getProperty设置和获取Java Bean的值。以上两个文件均保存在Tomcat安装目录下的webappsJavaBean目录下。,4.4.8 JSP动作应用案例,BookBean.java是一个JavaBean,它需要首先编译成BookBean.class存放在Tomcat安装目录下的webappsJavaBeanWEB-INFclassesbean目录下。,BookBean.java文件代码,package bean

25、;import java.io.*;public class BookBean private String BookName=;private int BookNum=1;public BookBean()public void setBookName(String BookName)this.BookName=BookName;public String getBookName()return this.BookName;public void setBookNum(int BookNum)this.BookNum=BookNum;public int getBookNum()return

26、 this.BookNum;,bookSelect.html主要代码,书 名:数量:,bookReceive.jsp文件代码:,图书订购订 购 图 书 清 单书 名:数 量:,bookReceive.jsp文件代码2:,图书订购订 购 图 书 清 单书 名:数 量:,4.5 小结,本章介绍了JSP的运行机制及其基本语法,包括基本语法,JSP指令和JSP动作。本章内容是后面章节学习的基础,一定要熟练掌握。,4.6 习题,1.单选题(1)下面不属于JSP指令的是:()A.include B.import C.page D.taglib,(2)page指令用于定义JSP文件中的全局属性,下 列关于该

27、指令用法的描述不正确的是:()A.作用于整个JSP页面。B.可以在一个页面中使用多个指令。C.为增强程序的可读性,建议将指令放在JSP文件的开头,但不是必须的。D.指令中的属性只能出现一次。,(3)下列标签使用正确的是:()A.B.C.D.(4)()动作用于转向另一个页面。A.next B.forward C.include D.param,(5)在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具有name属性,则下面标签用法正确的是:()A B C D,(6)jsp:useBean 动作的scope属性设置为()将使同一用户在不同页面共享Beans。A.p

28、age B.session C.application D.request(7)在JSP中使用标记时,不会出现的属性是:()A.name B.property C.value D.以上皆不会出现,2.上机练习(1)应用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问候语,例如上午012点之间输出“早上好”,同时把系统的年、月、日、小时、分、秒和星期输出到用户的浏览器。(2)加载动态文件,制作一个JSP文件,计算一个数的平方,然后再制作一个JSP文件,应用动作加载上述的JSP文件,在客户端显示出来,并在客户端的“查看源文件”中观察源文件。(3)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,用“jsp:forward page=”语句将页面跳转到介绍该图书信息页面。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号