Java-Web程序设计任务教程第6章-JSP技课件.ppt

上传人(卖家):三亚风情 文档编号:2921365 上传时间:2022-06-11 格式:PPT 页数:44 大小:1.65MB
下载 相关 举报
Java-Web程序设计任务教程第6章-JSP技课件.ppt_第1页
第1页 / 共44页
Java-Web程序设计任务教程第6章-JSP技课件.ppt_第2页
第2页 / 共44页
Java-Web程序设计任务教程第6章-JSP技课件.ppt_第3页
第3页 / 共44页
Java-Web程序设计任务教程第6章-JSP技课件.ppt_第4页
第4页 / 共44页
Java-Web程序设计任务教程第6章-JSP技课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、第六章 JSP技术JSP运行原理page指令JSP隐式对象forward标签JSP声明include指令include标签掌握JSP的基本语法和JSP动作元素的使用13 了解JSP的特点 及其运行原理2熟悉JSP指令和隐式对象的使用掌握了解熟悉学习目标6.16.1JSP概述6.26.2JSP基本语法6.36.3JSP指令6.46.4JSP隐式对象点击查看本小节知识架构点击查看本小节知识架构点击查看本小节知识架构6.56.5JSP动作元素6.66.6阶段案例:传智书城JSP页面点击查看本小节知识架构点击查看本小节知识架构点击查看本小节知识架构目录返回目录6.1.16.1.2什么是JSP编写第一个

2、JSP文件JSP运行原理6.1 JSP概述概述6.1.3知识架构返回目录6.2.1JSP脚本元素JSP注释6.2 JSP基本语法基本语法6.2.2知识架构返回目录6.3.1page指令include指令6.3 JSP指令指令6.3.2知识架构返回目录6.4.16.4.2隐式对象的概述out对象pageContext对象6.4 JSP隐式对象隐式对象6.4.36.4.4exception对象知识架构返回目录6.5.1动作元素动作元素6.5 JSP动作元素动作元素6.5.2知识架构返回目录6.6.1【任务6-1】实现首页【任务6-2】实现注册页面6.6 阶段案例:传智书城阶段案例:传智书城JSP页

3、面页面6.6.2知识架构在动态网页开发中,经常需要动态生成HTML内容,例如,一篇新闻报道的浏览次数需要动态生成。这时,如果使用Servlet来实现HTML页面数据的统计,需要调用大量的输出语句,使静态内容和动态内容混合在一起,导致程序非常臃肿。为了克服Servlet的这些缺点,Oracle(Sun)公司推出了JSP技术。接下来,本章将围绕JSP技术进行详细的讲解。JSP技术 JSP全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现

4、网页中动态内容的显示。为了与传统HTML有所区别,JSP文件的扩展名为.jsp。 JSP技术所开发的Web应用程序是基于Java的,它可以用一种简捷而快速的方法从Java程序生成Web页面,其使用上具有如下几点特征: 跨平台:跨平台:由于JSP是基于Java语言的,它可以使用Java API,所以它也是跨平台的,可以应用于不同的系统中,如Windows、Linux等。当从一个平台移植到另一个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为Java的字节码是与平台无关的,这也应验了Java语言“一次编译,到处运行”的特点。JSP概述6.1 JSP概述 业务代码相分离:业务代码相分

5、离:在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离开。开发人员使用HTML来设计界面,使用JSP标签和脚本来动态生成页面上的内容。在服务器端,JSP引擎(或容器,本书中指Tomcat)负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回到浏览器。 组件重用:组件重用:JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面中,甚至在整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用到其他Java应用程序中。 预编译:预编译:预编译就是

6、在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,会直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大的提升了客户端的访问速度。6.1 JSP概述 接下来,通过一个案例来演示第一个JSP文件的创建过程,请查看教材6.1.2小节。 案例代码6.1 JSP概述 JSP的工作模式是请求/响应模式,客户端首先发出HTTP请求,JSP程序收到请求后进行处理并返回处理结果。在一个JSP文件第一次被请求时,JSP引擎(容器)把该JSP文件转换成为一个Servlet,而这个引擎本身也是一个Servlet。JSP的

7、运行过程如图所示。JSP运行原理6.1 JSP概述 JSP的运行过程具体如下:(1)客户端发出请求,请求访问JSP文件。(2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。(3)如果转换成功,则JSP容器将生成的Java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样来处理它。(4)由Servlet容器加载转换后的Servlet类(.class文件)创建一个该Servlet(

8、JSP页面的转换结果)实例,并执行Servlet的jspInit()方法。jspInit()方法在Servlet的整个生命周期中只会执行一次。6.1 JSP概述(5)执行jspService()方法来处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程来处理它。如果多个客户端同时请求该JSP文件,则JSP容器也会创建多个线程,使得每一个客户端请求都对应一个线程。JSP运行过程中采用的这种多线程的执行方式可以极大地降低对系统资源的需求,提高系统的并发量并缩短响应时间。需要注意的是,由于第(4)步生成的Servlet是常驻内存的,所以响应速度非常快。(6)如果JSP文件被修改了,则服务

9、器将根据设置决定是否对该文件重新编译,如果需要重新编译,则使用重新编译后的结果取代内存中常驻的Servlet,并继续上述处理过程。(7)虽然JSP效率很高,但在第一次调用的时候往往由于需要转换和编译,所以会产生一些轻微的延迟。此外,由于系统资源不足等原因,JSP容器可能会以某种不确定的方式将Servlet从内存中移除,发生这种情况时首先会调用jspDestroy()方法,然后Servlet实例会被加入“垃圾收集”处理。6.1 JSP概述(8)当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。 了解了JSP的运行原理后,完全可以利用其中的一些步骤来做一些工作,如

10、:可以在jspInit()中进行一些初始化工作(建立数据库的连接、建立网络连接、从配置文件中获取一些参数等),可以在jspDestroy()中释放相应的资源等。 为了使读者更容易理解JSP的运行原理,接下来简单介绍分析一下JSP所生成的Servlet代码,请查看教材6.1.3小节。 案例代码6.1 JSP概述 JSP脚本元素是指嵌套在之中的一条或多条Java程序代码。通过JSP脚本元素可以将Java代码嵌入HTML页面中,所有可执行的Java代码,都可以通过JSP脚本来执行。 JSP脚本元素主要包含如下三种类型: JSP Scriptlets JSP声明语句 JSP表达式JSP脚本元素6.2

11、JSP基本语法1、JSP Scriptlets JSP Scriptlets 是一段代码段。当需要使用Java实现一些复杂操作或控制时,可以使用它。JSP Scriptlets的语法格式如下所示: 在JSP Scriptlets中声明的变量是JSP页面的局部变量,调用JSP Scriptlets时,会为局部变量分配内存空间,调用结束后,释放局部变量占有的内存空间。2、JSP声明声明语句语句 JSP的声明语句用于声明变量和方法,它以“”结束,其语法格式如下所示:6.2 JSP基本语法 在上述语法格式中,被声明的Java代码将被编译到Servlet的_jspService()方法之外,即在JSP声

12、明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定的变量分配内存,而调用结束后立刻会释放所占的内存。 接下来,通过一个案例来演示JSP Scriptlets和声明语句的使用,请查看教材文件6-1。 案例代码6.2 JSP基本语法 需要注意的是,里面定义的属性是成员属性,相当于类的属性,方法相当于是全局的方法,也相当于是类里面的方法,但是它是不可以进行输出的,因为它只是进行方法的定义和属性的定义。 可以进行属性的定义,也可以输出内容,但是它不可以进行

13、方法的定义。因为这对标签里面的内容是在此jsp被编译为servlet的时候,放在_jspService()方法里面的,这个方法就是服务器向客户端输出内容的地方,它本身就是一个方法,所以如果在它里面定义方法的话,那么就相当于是在类的方法里面嵌套定义了方法,这在java里面是不允许的。但是可以在里面定义自己的私有变量,因为方法里面也可以定义变量,也可以调用方法,唯独不可以再定义方法了。 总之,是用来定义成员变量属性和方法的,主要是用来输出内容的,因此如果涉及到了成员变量的操作,那么就应该使用,而如果是涉及到了输出内容的时候,就使用。6.2 JSP基本语法3、JSP表达式表达式 JSP表达式(exp

14、ression)用于将程序数据输出到客户端,它将要输出的变量或者表达式直接封装在以“”结尾的标记中,其基本的语法格式如下所示: 在上述语法格式中,JSP表达式中的变量或表达式的计算结果将被转换成一个字符串,然后插入到JSP页面输出结果的相应位置处。例如,对example01.jsp文件进行修改,将内的脚本元素修改为表达式,具体如下。6.2 JSP基本语法 同其他各种编程语言一样,JSP也有自己的注释方式,其基本语法格式如下: 需要注意的是,Tomcat在将JSP页面编译成Servlet程序时,会忽略JSP页面中被注释的内容,不会将注释信息发送到客户端。JSP注释 接下来,通过一个案例来演示JS

15、P注释的使用,请查看教材文件6-2。 案例代码6.2 JSP基本语法 在JSP页面中,经常需要对页面的某些特性进行描述,例如,页面的编码方式,JSP页面采用的语言等,这时,可以通过page指令来实现。page指令的具体语法格式如下所示: 在上面的语法格式中,page用于声明指令名称,属性用来指定JSP页面的某些特性。page指令提供了一系列与JSP页面相关的属性,如下表所示。page指令6.3 JSP指令 表中列举了page指令的常见 属性,其中,除了import属 性外,其他的属性都只能出 现一次,否则会编译失败。 需要注意的是,page指令的 属性名称都是区分大小写的。6.3 JSP指令

16、下面列举两个使用page指令的示例: 上面代码中使用了page指令的language、contentType、pageEncoding和import属性。 需要注意的是,page指令对整个页面都有效,而与其书写的位置无关,但是习惯上把page指令写在JSP页面的最前面。6.3 JSP指令 在实际开发时,有时需要在JSP页面静态包含一个文件,例如HTML文件,文本文件等,这时,可以通过include指令来实现,include指令的具体语法格式如下所示: include指令只有一个file属性,该属性用来指定插入到JSP页面目标位置的文件资源。需要注意的是,插入文件的路径一般不以“/”开头,而是使

17、用相对路径。include指令 接下来,通过一个案例来学习include指令的具体用法,请查看教材文件6-36-4。 案例代码6.3 JSP指令 关于include指令的具体应用,有很多问题需要注意,接下来,将这些问题进行列举,具体如下: 被引入的文件必须遵循JSP语法,其中的内容可以包含静态HTML、JSP脚本元素和JSP指令等普通JSP页面所具有的一切内容。 除了指令元素之外,被引入的文件中的其他元素都被转换成相应的Java源代码,然后插入进当前JSP页面所翻译成的Servlet源文件中,插入位置与include指令在当前JSP页面中的位置保持一致。 file属性的设置值必须使用相对路径,

18、如果以“/”开头,表示相对于当前Web应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。需要注意的是,这里的file属性指定的相对路径是相对于文件(file),而不是相对于页面(page)。6.3 JSP指令 在JSP页面中,有一些对象需要频繁使用,如果每次都重新创建这些对象则会非常麻烦。为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象,它们是JSP默认创建的,可以直接在JSP页面中使用。这9个隐式对象的名称、类型和描述如表所示。隐式对象的概述6.4 JSP隐式对象 在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对

19、象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于一种带缓存功能的PrintWriter。接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系,具体如图所示。 从图可以看出,在JSP页面中,通过out 隐式对象写入数据相当于将数据插入到 JspWriter对象的缓冲区中,只有调用了 ServletResponse.getWrite

20、r()方法,缓 冲区中的数据才能真正写入到Servlet引擎所提供的缓冲区中。out对象6.4 JSP隐式对象 接下来,通过一个具体的案例来演示out对象的使用,请查看教材文件6-5。 使用page指令设置out对象的缓冲区大小,请查看教材6.4.2小节的多学一招。 案例代码6.4 JSP隐式对象 在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax.servlet.jsp.PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用于获取其他隐式对象的方法。pageContext对象获取隐式对象的方法如

21、下表所示。pageContext对象6.4 JSP隐式对象 上表中列举了pageContext获取其他隐式对象的方法,这样,当传递一个pageContext对象后,就可以通过这些方法轻松地获取到其他8个隐式对象了。 pageContext对象不仅提供了获取隐式对象的方法,还提供了存储数据的功能。pageContext对象存储数据是通过操作属性来实现的,下表列举了pageContext操作属性的一系列方法,具体如下:6.4 JSP隐式对象 上表列举了pageContext对象操作属性的相关方法,其中,参数name指定的是属性名称,参数scope指定的是属性的作用范围。pageContext对象的

22、作用范围有4个值,具体如下: pageContext.PAGE_SCOPE:表示页面范围 pageContext.REQUEST_SCOPE:表示请求范围 pageContext.SESSION_SCOPE:表示会话范围 pageContext.APPLICATION_SCOPE:表示Web应用程序范围 需要注意的是,当使用findAttribute()方法查找名称为name的属性时,会按照page、request、session和application的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null。6.4 JSP隐式对象 接下来,通过一个案例来演示pageContext对象

23、的使用,请查看教材文件6-7。 案例代码6.4 JSP隐式对象 在JSP页面中,经常需要处理一些异常信息,这时,可以通过exception对象来实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性的页面。exception对象 接下来,通过一个案例来学习exception对象的使用,请查看教材文件6-86-9。 案例代码6.4 JSP隐式对象 在JSP页面中,为了把其他资源的输出内容插入到当前JSP页面的输出内容中,JSP技术提供了动作元素

24、,动作元素的具体语法格式如下所示: 在上述语法格式中,page属性用于指定被引入资源的相对路径,flush属性用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false。动作元素6.4 JSP隐式对象 包含的原理是将被包含的页面编译处理后将结果包含在页面中。当浏览器第一次请求一个使用包含其他页面的页面时,Web容器首先会编译被包含的页面,然后将编译处理后的返回结果包含在页面中,之后编译包含页面,最后将两个页面组合的结果回应给浏览器。为了使读者更好地理解动作元素。 接下来,通过一个案例来演示动作元素的使用,请查看教材文件6-106-11。 案例代码6.5 JSP动作

25、元素 需要注意的是,虽然include指令和标签都能够包含一个文件,但它们之间有很大的区别,具体如下: 标签中要引入的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件。 标签中引入的资源是在运行时才包含的,而且只包含运行结果。而include指令引入的资源是在编译时期包含的,包含的是源代码。 标签运行原理与RequestDispatcher.include()方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而inclu

26、de指令没有这方面的限制。6.5 JSP动作元素 动作元素将当前请求转发到其他Web资源(HTML页面、JSP页面和Servlet等),在执行请求转发之后的当前页面将不再执行,而是执行该元素指定的目标页面。其具体语法格式如下所示: 在上述语法格式中,page属性用于指定请求转发到的资源的相对路径,该路径是相对于当前JSP页面的URL。动作元素 接下来,通过一个案例来学习动作元素的具体用法,请查看教材文件6-126-13。 案例代码6.5 JSP动作元素任务案例案例代码 接下来,通过实现传智书城首页来熟悉本阶段的知识点,请查看教材【任务6-1】。6.6 阶段案例:传智书城JSP页面任务案例案例代码 接下来,通过实现传智书城注册页面来熟悉本阶段的知识点,请查看教材【任务6-2】。6.6 阶段案例:传智书城JSP页面 本章主要讲解了JSP的语法、JSP指令、JSP隐式对象和JSP动作元素。通过本章的学习,读者可以了解JSP的由来以及运行原理,掌握JSP的基本语法,能够熟练JSP常用指令及隐式对象的使用,并掌握常用动作元素的使用。JSP是一种简化了的Servlet,最终也会编译成Servlet类。但JSP文件在形式上与HTML文件相似,可以直观表单页面的内容和布局,因此,在动态网页开发中,学会JSP开发相当重要,读者应该熟练掌握本章内容。6.7 本章小结

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java-Web程序设计任务教程第6章-JSP技课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|