服务器端开发技术JSP及JavaBean.ppt
《服务器端开发技术JSP及JavaBean.ppt》由会员分享,可在线阅读,更多相关《服务器端开发技术JSP及JavaBean.ppt(79页珍藏版)》请在三一办公上搜索。
1、第六章服务器端开发技术JSP及JavaBean,2023/11/14,服务器端开发技术JSP及JavaBean,2,第六章 服务器端开发技术JSP及JavaBean,第一节.JSP第二节.JavaBean第三节.JSP、JavaBean及Servlet组合开发第四节.开发框架、模式介绍,2023/11/14,服务器端开发技术JSP及JavaBean,3,第一节 JSP,6.1.1 JSP概述 JSP是SUN公司推出的一种新型的Web开发语言,和其他开发语言相比,JSP有以下显著的优点:1、运行效率较高且功能强 JSP页面在第一次被访问时,JSP容器会将其转换成一个等价的Servlet类,并且放
2、置在工作目录中,以后所有对该JSP页面的访问都会由该Servlet类来处理,不再需要对JSP的解析。,2023/11/14,服务器端开发技术JSP及JavaBean,4,2、动态内容和静态内容的分离 JSP页面通常还会包括其他的一些由JSP规范定义的称为元素的部分,用于表达逻辑和显示动态内容。这些元素和纯HTML代码自由的融合在一起,但是又能在外观上截然分开。这种做法使得JSP页面的结构相对较为清晰,能同时为开发人员和网页设计人员理解。3、组件重用 软件设计时的重用性是非常重要的,JSP特别考虑到已有组件的重用,在JSP中的组件重用主要是通过JavaBean组件、Enterprise Java
3、Bean组件和定制化标签来实现的。这些组件可以由第三方开发,并且可以和开发工具结合起来实现快速开发。,2023/11/14,服务器端开发技术JSP及JavaBean,5,6.1.2 JSP元素开发基础 1.JSP元素的基本概念 元素就是由JSP规范定义的,JSP容器能够理解并处理的部分,除了元素之外所有其他的内容,即JSP容器不能理解的则统称为模板。元素有不同的类型,类型的定义描述了元素语法和语义。例如,如果元素拥有属性,类型定义就需要描述属性的名字、属性值的类型和属性的意义等等。,2023/11/14,服务器端开发技术JSP及JavaBean,6,2.JSP元素的类型 JSP规范定义了三大类
4、元素:脚本元素、指令和动作。使用脚本元素完成网页的各种功能,脚本元素最终会转换为Servlet的代码,指令可以控制Servlet的整体结构,而动作支持重用已有组件。,2023/11/14,服务器端开发技术JSP及JavaBean,7,(1)JSP脚本 JSP脚本提供了JSP动作和模板内容之间的粘合剂。JSP脚本实际上几乎可以使用Java语言提供的全部功能和开发包。因此能够给开发者提供非常灵活的功能来控制页面的显示和逻辑。JSP脚本也分为三类:声明,代码片断和表达式。声明的语法是,代码片断的语法是,表达式的语法式。后面可以看到,这些不同类型的JSP脚本在JSP页面中起不同的作用。,2023/11
5、/14,服务器端开发技术JSP及JavaBean,8,(2)JSP指令 JSP指令为JSP容器解释并执行JSP页面提供需要的信息。指令的作用是和每个单独的HTTP请求无关的。比如我们可以使用指令来引入一些JAVA包,进而使用其中定义的类等。每个HTTP请求都可能会用到这些类。指令的语法是。,2023/11/14,服务器端开发技术JSP及JavaBean,9,(3)JSP动作 JSP动作支持在JSP脚本中动态地插入一个文件、重用JavaBeans组件、前进到另一个页面,或为Java 插件生成一个HTML。JSP动作通常遵循XML中元素的语法,一般来说都有一个包含有元素名称的起始标志,可能还包含有
6、属性设置、一些可选项和一个结束标志。有的元素也仅仅有一个包含属性设置的标志,例如:body,2023/11/14,服务器端开发技术JSP及JavaBean,10,(4)JSP注释 如果想在一个JSP文件中加入注释说明一些逻辑等信息,可以使用如下格式:JSP的注释部分和HTML的注释相似,当在执行的时候JSP引擎将去掉对注释的解释。这就意味着JSP注释并不返回到用户的浏览器中。不象HTML注释被定义在标签之间,JSP注释被定义在之间。,2023/11/14,服务器端开发技术JSP及JavaBean,11,3.实例分析 Welcome Today is Day:Year:,2023/11/14,服
7、务器端开发技术JSP及JavaBean,12,(1)当网页被编译成一个servlet的时候,指令将被JSP引擎处理。在上面的例子中,有如下两个指令:分别为;定义了页面所使用的语言(Java)和所引入的Java包;(2)指定一个将要插入页面底部的HTML文件内容。后面的章节将详细介绍JSP 指令、JSP 动作、JSP 脚本和一些预定义变量的语法和用法。,2023/11/14,服务器端开发技术JSP及JavaBean,13,6.1.3 JSP 脚本 在J S P中,主要的程序部分就是脚本元素,其中包括三个部分:声明(Declaration)、表达式(Expression)和代码(Scriptlet
8、)。从功能上讲,声明用于声明一个或多个变量,表达式将是一个完整的语言表达式,而代码部分将是一些程序片断。三个脚本元素的基本语法都是以一个“”结尾的。,2023/11/14,服务器端开发技术JSP及JavaBean,14,1.声明 J S P中的声明用于声明一个或多个变量和方法,并不输出任何的文本到o u t输出流去。在声明元素中声明的变量和方法将在J S P页面初始化时加以初始化。声明的语法为:实际上,声明变量和方法的语句完全可以放在后面的脚本代码中。放在中的声明语句在JSP编译为Servlet的时候将作为类的属性而存在,而放在脚本代码中的声明将在类的方法内部被声明。,2023/11/14,服
9、务器端开发技术JSP及JavaBean,15,2.表达式 表达式元素表示的是一个在脚本语言中被定义的表达式,J S P中的表达式可以被看作一种简单的输出形式,在运行后被自动转化为字符串,然后插入到这个表达式在JSP文件的位置处而被显示。表达式语法为:举例如下:,2023/11/14,服务器端开发技术JSP及JavaBean,16,3.脚本代码 JSP脚本代码包含一个有效的程序段,脚本代码也被称做scriptlet。它能够包含多个JSP语句、方法、变量和表达式。可以使用脚本完成下列工作:声明将要用到的变量或方法;编写JSP表达式;使用任何隐含的对象和任何用jsp:useBean声明过的对象;编写
10、JSP语句,一般语句要遵从Java 语法规定。任何文本、HTML标记、JSP元素都必须在脚本之外。脚本的语法为:,2023/11/14,服务器端开发技术JSP及JavaBean,17,6.1.4 JSP预定义变量 JSP提供了8种预定义的变量.它们是request,response,out,session,application,config,pageContext和page。1.out out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息回送到客户端的浏览器中。在out对象中,最常用的方法就是print()和println()。在使用prin
11、t()或println()方法时,由于客户端是浏览器,因此向客户端输出时,可以使用HTML中的一些标记,例如:“out.println(”Hello,JSP“);”其他一些常用的方法是:out.write功能和out.print相同,newLine()的功能是输出一个换行符,out.flush()的功能是输出缓冲的内容。out.close()的功能是关闭输出流。out对象的生命周期是当前页面。因此对于每一个JSP页面,都有一个out对象,2023/11/14,服务器端开发技术JSP及JavaBean,18,下例简单地使用out对象把系统时间输入到浏览器上。out对象使用实例);out.prin
12、t(out输出成功);%,2023/11/14,服务器端开发技术JSP及JavaBean,19,2.request request类似于Servlet中的HttpServletRequest类,通过它得到request的参数(通过getParameter方法)、request 的类型(GET,POST,HEAD,等等),以及引入的HTTP头(cookies,Referer,等等)。,2023/11/14,服务器端开发技术JSP及JavaBean,20,(1)setAttribute与getAttribute方法实例 下面的mainreq.jsp包含了import.jsp文件。mainreq.j
13、sp 你刚才输入的内容是:import.jsp request对象使用实例,2023/11/14,服务器端开发技术JSP及JavaBean,21,(2)getParameter方法实例 如下两个JSP文件演示了如何使用getParameter方法。getParameterMain1.jsp的主要功能是显示Form,通过Form提交参数student、city和enjoy,点击提交后调用submit.jsp。而submit.jsp文件使用getParameter方法。通过它指定参数名字,读取特定的参数,并在浏览器屏幕上显示。,2023/11/14,服务器端开发技术JSP及JavaBean,22,
14、getParameterMain1.jsp getParameter()方法使用实例,submit.jsp 你刚才输入的内容是:当点击按钮提交后,显示下边内容,2023/11/14,服务器端开发技术JSP及JavaBean,23,(3)getParameterName和getRemoteAddr方法实例 有时候为了获取不知道参数的名字,需要使用getParameterName获得所有参数的名字,然后再使用获得的名字去取得参数的值。下面的两个JSP文件演示了如何使用getParameterName方法。,2023/11/14,服务器端开发技术JSP及JavaBean,24,getParamete
15、rNameMain1.jsp getParameterName()方法使用实例,submit1.jsp 刚才输入的参数名及值如下:);%你的IP地址是:,2023/11/14,服务器端开发技术JSP及JavaBean,25,Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法。在Enumeration中提供了方法hasMoreElement()来判断集合中是束还有其它元素;方法nextElement()来获取下一个元素。利用这两个方法可以依次获得集合中元素。,2023/11/14,服务器端开发技术JSP及JavaBean,26,3.r
16、esponse response对象可以用于在JSP给浏览器响应的时候设置与响应相关的参数,比如使用response对象的setHeader方法可以设置各种响应头属性,其中refresh属性可以设施页面自动刷新。下例(responsesetHeader.jsp)每隔2秒自动刷新浏览器,并显示当前系统时间。responsesetHeader.jsp的代码如下:setHeader刷新页面实例,2023/11/14,服务器端开发技术JSP及JavaBean,27,4.session 在Servlet一章中我们知道当用户访问网站,系统将为他生成一个独一无二的Session对象,用以记录该用户的个人信息
17、,一旦该用户退出网站,那么该Session对象将会注销。Session对象可以绑定若干个人信息或者Java对象,不同Session对象的同名变量是不会相互干扰的。在JSP中我们可以直接使用该对象。,2023/11/14,服务器端开发技术JSP及JavaBean,28,我们只通过例子来看如何使用该对象保存属性和值对,使得同一个用户的一次会话的不同页面之间可以共享这些属性和值。该例涉及3个页面,分别是主页面:SessionMain.jsp转向页面1:SessionSub1.jsp转向页面2:SessionSub2.jsp具体执行过程及解释如下:执行SessionMain.jspSessionMai
18、n.jsp会把两个属性和值(username和password)保存到session中。执行SessionSub1.jsp点击链接后从SessionMain.jsp转向SessionSub1.jsp页面,该页面执行时会读出SessionMain.jsp保存的属性的值(username和password),并显示在屏幕上。该页面读取并在浏览器上显示了一些会话相关的数据,最后删除属性username。执行SessionSub2.jsp点击SessionSub1.jsp页面包含的链接(指向第三页)后转向SessionSub2.jsp页面,SessionSub2.jsp页面会尝试从session中读取
19、属性username和password,结果是由于SessionSub1.jsp页面删除了属性username,所以username读出null,而只能读出password属性,在浏览器会显示null及口令1234。,2023/11/14,服务器端开发技术JSP及JavaBean,29,SessionMain.jsp Session主页面 指向第二页SessionSub1.jsp,SessionSub1.jsp Session转向页面1);for(int i=0;i);%指向第三页SessionSub2.jsp,2023/11/14,服务器端开发技术JSP及JavaBean,30,Sessio
20、nSub2.jsp Session转向页面2,2023/11/14,服务器端开发技术JSP及JavaBean,31,5.application Application对象由服务器来创建和加以清除,在JSP服务器运行时刻,仅有一个Application为众多用户请求共享。用户不能创建和清除Application对象,而只能获得这个Appliation对象去使用它。Application对象的setAttribute(),getAttribute()和removeAttribute()方法可以将相关的属性和值保存到该对象和从该对象中取出。下例(appAtt.jsp)展示了如何使用这些方法。该例把用
21、户名和口令这两个变量作为属性,先使用setAttribute方法将它们保存到Applicationd对象中,然后又使用getAttribute方法从中取出并显示将其到页面上。在这之后,使用removeAttribute方法删除属性password,然后再去获得password属性的值,由于已经删除,所有结果都只返回null。,2023/11/14,服务器端开发技术JSP及JavaBean,32,appAtt.jsp:Application对象方法实例);out.println(application.getAttribute(password)+);application.removeAttr
22、ibute(password);out.println(application.getAttribute(password)+);%,2023/11/14,服务器端开发技术JSP及JavaBean,33,另一个方法getAttributeNames()将当前Application对象中保存的所有的属性的名字都取出来。这个方法也很有用,下面给出一个例子(getAttName.jsp)Application对象方法实例);%,2023/11/14,服务器端开发技术JSP及JavaBean,34,6.1.5 JSP 指令 指令分为三种page,include和taglib,其样式如下:1.page指
23、令 page指令描述了和页面相关的指示信息,定义了JSP文件中的全局属性。在一个JSP页面中,page指令可以出现多次,但是每一种属性却只能出现一次,发生重复的属性设置时,后面的设置将覆盖掉先前的设置。,2023/11/14,服务器端开发技术JSP及JavaBean,35,下面是常用的page指令例子:(引用Java语言的类库)注意:page 指令作用于整个JSP页面,同样包括静态的包含文件。但是page 指令不能作用于动态的包含文件,比如jsp:include。page指令作用范围是整个JSP页面,无论放在JSP的文件的哪个地方,一般都是放在JSP文件的顶部。,2023/11/14,服务器端
24、开发技术JSP及JavaBean,36,2.Taglib指令 Taglib指令描述了扩展的标签库信息。JSP容器能够理解并处理的元素除了JSP规范定义的标准元素之外,还可以通过标签扩展接口来进行扩展。对于每个扩展的元素(通常称其为定制标签),需要通过Taglib指令来把其定义信息告知JSP容器。Taglib指令的语法是:,2023/11/14,服务器端开发技术JSP及JavaBean,37,3.Include指令 编译时“被包含文件”的内容将插入当前位置,同当前文件的其它内容一起编译。Ex6_8.jsp ex6-8answer.jsp,2023/11/14,服务器端开发技术JSP及JavaBe
25、an,38,6.1.6 JSP 动作 JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面和为Java插件生成HTML代码。1.JSP标准动作及其属性 JSP标准动作包括:jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置JavaBean的属性。jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为Ja
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务器端 开发 技术 JSP JavaBean

链接地址:https://www.31ppt.com/p-6583273.html