Jaa程序设计基础JSP技术基础课件

上传人:痛*** 文档编号:214520035 上传时间:2023-05-29 格式:PPT 页数:118 大小:745KB
收藏 版权申诉 举报 下载
Jaa程序设计基础JSP技术基础课件_第1页
第1页 / 共118页
Jaa程序设计基础JSP技术基础课件_第2页
第2页 / 共118页
Jaa程序设计基础JSP技术基础课件_第3页
第3页 / 共118页
资源描述:

《Jaa程序设计基础JSP技术基础课件》由会员分享,可在线阅读,更多相关《Jaa程序设计基础JSP技术基础课件(118页珍藏版)》请在装配图网上搜索。

1、第第13章章 JSP技术基础技术基础学习重点:学习重点:l网络应用结构网络应用结构lJ2EEJ2EE的主体结构的主体结构lJSPJSP基本原理基本原理lJSPJSP运行环境配制运行环境配制lJSPJSP基本语法基本语法lJSPJSP基本指令与标准动作基本指令与标准动作lJSPJSP的内置对象的特点与使用的内置对象的特点与使用Jaa程序设计基础JSP技术基础第第13章章 JSP技术基础技术基础 13.113.1 网络应用的系统结构网络应用的系统结构 13.1.113.1.1 两层结构两层结构 13.1.213.1.2 三层结构三层结构 13.1.313.1.3 网络应用构架中的一些补充概念网络应

2、用构架中的一些补充概念 13.213.2 J2EE J2EE技术简介技术简介 13.2.113.2.1 J2EE J2EE的结构的结构 13.2.213.2.2 J2EE J2EE中的主要组件中的主要组件 13.313.3 JSP JSP技术概述技术概述 13.3.113.3.1 JSP JSP的技术原理的技术原理 13.3.213.3.2 JSP JSP与与ASPASP 13.3.313.3.3 JSP JSP与与ServletServlet的比较的比较 13.3.413.3.4 JSP JSP运行环境的配置运行环境的配置Jaa程序设计基础JSP技术基础 13.413.4 JSP JSP基本

3、语法基本语法 13.4.113.4.1 变量声明与表达式变量声明与表达式 13.4.213.4.2 程序段程序段 13.4.313.4.3 基本指令基本指令 13.4.413.4.4 将将JSPJSP与与HTMLHTML结合起来结合起来 13.4.513.4.5 本节综合实例本节综合实例 13.513.5 JSP JSP标准动作标准动作 13.5.113.5.1 jsp:include jsp:include动作动作 13.5.213.5.2 使用使用Java BeanJava Bean 13.5.313.5.3 jsp:forward jsp:forward动作动作 13.5.413.5.4

4、 jsp:plugin jsp:plugin动作动作Jaa程序设计基础JSP技术基础 13.613.6 JSP JSP的内置对象的内置对象 13.6.113.6.1 对象的可见范围对象的可见范围 13.6.213.6.2 与输入输出有关的内置对象与输入输出有关的内置对象 13.6.313.6.3 session session对象对象 13.6.413.6.4 与上下文有关的内置对象与上下文有关的内置对象 13.6.513.6.5 用于错误处理的内置对象用于错误处理的内置对象 13.6.613.6.6 与与ServletServlet有关的内置对象有关的内置对象 13.713.7 练习题练习题

5、 Jaa程序设计基础JSP技术基础13.1 网络应用的系统结构网络应用的系统结构 基于网络的应用系统需要有服务器与客户端的交互,需要通过网基于网络的应用系统需要有服务器与客户端的交互,需要通过网络传输数据才能实现应用逻辑。而如何处理好服务器与客户端的关络传输数据才能实现应用逻辑。而如何处理好服务器与客户端的关系,是网络应用要解决的核心问题。系,是网络应用要解决的核心问题。Jaa程序设计基础JSP技术基础13.1.1 两层结构两层结构 传统的网络应用通常是建立在两层结构基础上的,所谓两层结传统的网络应用通常是建立在两层结构基础上的,所谓两层结构,即指客户机构,即指客户机/服务器服务器(Clien

6、t/Server)(Client/Server)两层,这类应用系统往往两层,这类应用系统往往需要在客户端安装相应的应用程序,一旦应用逻辑即客户需求发生需要在客户端安装相应的应用程序,一旦应用逻辑即客户需求发生变化,需要对客户端程序进行修改和升级。变化,需要对客户端程序进行修改和升级。Jaa程序设计基础JSP技术基础13.1.2 13.1.2 三层结构三层结构这三层服务包括:这三层服务包括:l第一层第一层用户服务层,提供信息交互、浏览定位、保证用户界用户服务层,提供信息交互、浏览定位、保证用户界面的一致性和完整性。面的一致性和完整性。l第二层第二层业务服务和其他的业务服务和其他的“中间中间”服务

7、,制订维护和共享业服务,制订维护和共享业务逻辑,从数据中生成需要的业务信息,保证业务信息的合法性务逻辑,从数据中生成需要的业务信息,保证业务信息的合法性和一致性,使原始数据和用户需求的信息相互独立。和一致性,使原始数据和用户需求的信息相互独立。l第三层第三层数据服务,数据的定义,永久数据的存贮和检索,数数据服务,数据的定义,永久数据的存贮和检索,数据一致性的保证。据一致性的保证。Jaa程序设计基础JSP技术基础三层结构的特点如下:三层结构的特点如下:l把应用逻辑从客户机中分离出来,使客户端程序简单、标准,使用方便,把应用逻辑从客户机中分离出来,使客户端程序简单、标准,使用方便,同时提供更丰富的

8、交互式的信息发布形式。同时提供更丰富的交互式的信息发布形式。l系统维护简单,摆脱了由于客户有多个应用而造成的复杂运行环境的维系统维护简单,摆脱了由于客户有多个应用而造成的复杂运行环境的维护。护。l应用逻辑的改变即不影响底层数据,也不影响用户的使用。应用逻辑的改变即不影响底层数据,也不影响用户的使用。Jaa程序设计基础JSP技术基础13.1.3 网络应用构架中的一些补充概念网络应用构架中的一些补充概念1.Web1.Web服务器服务器 Web Web服务器即万维网服务器是浏览网页需要的最根本的后台支持,它能服务器即万维网服务器是浏览网页需要的最根本的后台支持,它能够接收来自客户端够接收来自客户端(

9、通常都是用户使用的浏览器通常都是用户使用的浏览器)的请求,并根据请求中的的请求,并根据请求中的某些信息做出相应的应答。某些信息做出相应的应答。在访问在访问WebWeb页面时,通常情况下使用的是页面时,通常情况下使用的是HTTPHTTP协议,所谓协议,可以认协议,所谓协议,可以认为它是交互双方的一种约定,更形象地说就像是服务器与客户端之间的语为它是交互双方的一种约定,更形象地说就像是服务器与客户端之间的语言,只有双方使用同样的语言,才能互相理解和进行沟通。言,只有双方使用同样的语言,才能互相理解和进行沟通。Jaa程序设计基础JSP技术基础几种流行的几种流行的WebWeb服务器服务器lApache

10、lMicrosoftIISliPlanetWebServer(NetscapeEnterpriseServer)lNovellNetWareWebServerlOracleWebServerlIBMWebSphereWebSphereJaa程序设计基础JSP技术基础2.HTTP协议协议 绝大多数的基于绝大多数的基于WebWeb的的J2EE ClientJ2EE Client都使用都使用HTTPHTTP协议与协议与J2EEJ2EE服务器服务器通讯。通讯。HTTPHTTP协议定义了一个协议定义了一个ClientClient,它包括可以向服务器发送哪些,它包括可以向服务器发送哪些请求请求(Reque

11、st)(Request)以及服务器可能返回什么样的应答以及服务器可能返回什么样的应答(Reply)(Reply)。每个请。每个请求都包含一个求都包含一个URL(Uniform Resource LocatorURL(Uniform Resource Locator,统一资源定位,统一资源定位),它是一个字符串,它能够惟一标识一个它是一个字符串,它能够惟一标识一个WebWeb组件或者一个静态对组件或者一个静态对象,如象,如HTMLHTML页面或者图形文件。页面或者图形文件。J2EE J2EE服务器把服务器把HTTPHTTP请求转换成请求转换成HTTPHTTP请求对象,并将其发送给这个请求对象,并

12、将其发送给这个请求中请求中URLURL指向的指向的WebWeb组件,组件,WebWeb组件根据请求,生成一个相应的应组件根据请求,生成一个相应的应答对象,答对象,J2EEJ2EE服务器再把这个应答对象转换成服务器再把这个应答对象转换成HTTPHTTP应答,返回给应答,返回给ClientClient。Jaa程序设计基础JSP技术基础HTTP请求的常见方法如下:请求的常见方法如下:lget获取获取URLURL指定的资源指定的资源lhead返回返回URLURL指定资源的头部指定资源的头部lpost向服务器发送一组没有长度限制的数据向服务器发送一组没有长度限制的数据lput在在URLURL指定的资源中

13、存储数据指定的资源中存储数据ldelete在在URLURL指定的资源中删除数据指定的资源中删除数据loptions返回服务器支持的返回服务器支持的HTTPHTTP方法方法ltrace返回返回tracetrace请求的头部请求的头部Jaa程序设计基础JSP技术基础HTTP应答状态代码应答状态代码HTTP应答包含有一个结果编号、头部和应答体三个部分,应答包含有一个结果编号、头部和应答体三个部分,HTTPHTTP应答有应答有以下一些常见结果编号:以下一些常见结果编号:l404404找不到请求的资源找不到请求的资源l401401请求需要请求需要HTTPHTTP认证认证l403403无访问该资源权限无访

14、问该资源权限l500500服务器内部错误服务器内部错误l503503服务器忙服务器忙Jaa程序设计基础JSP技术基础3.3.静态网页与动态网页静态网页与动态网页lHTMLHTML是编制网页的基本语言,但它只能用于静态的网页。是编制网页的基本语言,但它只能用于静态的网页。l动态页面技术,系统的页面不再是完全的动态页面技术,系统的页面不再是完全的HTMLHTML,而是在其中嵌入,而是在其中嵌入了很多从后台数据库取回的内容。了很多从后台数据库取回的内容。l例子:在静态页面中,假设用户例子:在静态页面中,假设用户TeresaTeresa打开一个页面时,由于这打开一个页面时,由于这个页面上所有的信息都是

15、在写好的个页面上所有的信息都是在写好的HTMLHTML文件中,所以它只能显示文件中,所以它只能显示出这样的欢迎词:出这样的欢迎词:“你好,尊敬的用户!你好,尊敬的用户!”,而有了动态页面技,而有了动态页面技术,术,TeresaTeresa可以有自己的账号来登录这个系统,登录上之后,系可以有自己的账号来登录这个系统,登录上之后,系统能够自动找到所有与这个用户相关的个性化信息,这时,系统统能够自动找到所有与这个用户相关的个性化信息,这时,系统的欢迎词可能就是这样的:的欢迎词可能就是这样的:“你好!你好!TeresaTeresa,这是你第,这是你第1010次登录次登录本系统,你上次登录时间是本系统,

16、你上次登录时间是20012001年年7 7月月3 3日,你最近购买的产品是:日,你最近购买的产品是:VCDVCD小叮当小叮当1515集集”等。等。Jaa程序设计基础JSP技术基础常见的动态页面技术有常见的动态页面技术有4 4种,即:种,即:lCGI(CommonGatewayInterface)公共网管接口,用户可以使用不同的程序编写适合的公共网管接口,用户可以使用不同的程序编写适合的CGICGI程序。程序。lASP(ActiveServerPages)ASP ASP是是MicrosoftMicrosoft公司开发的一种类似公司开发的一种类似HTMLHTML和和Script(Script(脚本

17、脚本)与与CGI(CommonGAtewayInterface,通用网关接口通用网关接口)的结合体,它没有提的结合体,它没有提供自己专门的编程语言,而是允许用户使用包括供自己专门的编程语言,而是允许用户使用包括VBScriptVBScript和和JavaScriptJavaScript等在内的许多已有的脚本语言编写等在内的许多已有的脚本语言编写ASPASP的应用程序。的应用程序。lPHP(HypertextPreprocessor,超文本预处理器超文本预处理器)PHP PHP是一种易于学习和使用的服务器端脚本语言,是生成动态网页的工是一种易于学习和使用的服务器端脚本语言,是生成动态网页的工具之

18、一。它是嵌入具之一。它是嵌入HTMLHTML文件的一种脚本语言。文件的一种脚本语言。lJSP(JavaServerPages)JSP JSP是由是由Sun MicrosystemSun Microsystem公司于公司于19991999年年6 6月推出的新技术,是基于月推出的新技术,是基于Java Java ServletServlet以及整个以及整个JavaJava体系的体系的WebWeb开发技术。利用这一技术可以建立先进、开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。安全和跨平台的动态网站。Jaa程序设计基础JSP技术基础13.2 J2EE技术简介技术简介 Sun Sun公司

19、的公司的J2EEJ2EE体系结构是针对上述三层结构中中间层的一个集体系结构是针对上述三层结构中中间层的一个集成框架,它能够满足低费用、高可用性、高可靠性以及可扩展性的成框架,它能够满足低费用、高可用性、高可靠性以及可扩展性的应用需求。通过提供统一的开发平台,应用需求。通过提供统一的开发平台,J2EEJ2EE降低了开发多层应用的降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持。利用费用和复杂性,同时提供对现有应用程序集成强有力支持。利用J2EEJ2EE,各公司可以更为方便地在中间层加速分布式项目部署,而在,各公司可以更为方便地在中间层加速分布式项目部署,而在企业开发工作中利

20、用这种体系结构,开发者将不必担心系统的运营企业开发工作中利用这种体系结构,开发者将不必担心系统的运营环境,从而可以集中精力重视商业逻辑的设计和应用的表示。环境,从而可以集中精力重视商业逻辑的设计和应用的表示。Jaa程序设计基础JSP技术基础13.2.1 J2EE的结构的结构 J2EE J2EE将电子商务应用分为将电子商务应用分为4 4个层次,其中,客户层和企业信息系个层次,其中,客户层和企业信息系统层分别对应上面三层结构的第一、三层,而统层分别对应上面三层结构的第一、三层,而WebWeb层和业务层对应层和业务层对应三层结构的中间层。三层结构的中间层。Jaa程序设计基础JSP技术基础1.客户层客

21、户层(Client Tier)l在一个基于在一个基于Web Web 的的J2EE J2EE 应用中,用户的浏览器在客户层中运行,应用中,用户的浏览器在客户层中运行,并从一个并从一个WebWeb服务器上下载服务器上下载WebWeb层中的静态层中的静态HTML HTML 页面或由页面或由JSPJSP或或ServletsServlets生成的动态生成的动态HTML HTML 页面页面 。l在一个不基于在一个不基于Web Web 的的J2EE J2EE 应用程序可能是一个独立客户端程序,应用程序可能是一个独立客户端程序,也可能是运行在其他一些基于网络的系统也可能是运行在其他一些基于网络的系统(如手持设

22、备或汽车电如手持设备或汽车电话话)中的中的Applet Applet 程序。这些程序在不经过程序。这些程序在不经过Web Web 层就可以直接访问层就可以直接访问业务层中的组件,以实现业务逻辑。业务层中的组件,以实现业务逻辑。Jaa程序设计基础JSP技术基础2.Web层层J2EEWeb 组件可以由组件可以由JSP JSP 页面、基于页面、基于Web Web 的的Applets Applets 以及显示以及显示HTML HTML 页面的页面的Servlets组成。组成。Web上的组件通常是依赖容器上的组件通常是依赖容器(Container)来支持上述服务的。来支持上述服务的。Jaa程序设计基础J

23、SP技术基础3.业务层业务层 l负责解决或满足某个特定业务领域负责解决或满足某个特定业务领域(如银行、零售或金融业如银行、零售或金融业)需要需要的业务逻辑,通常由一些特定的组件来完成,即的业务逻辑,通常由一些特定的组件来完成,即Enterprise Enterprise Java Beans(EJB)Java Beans(EJB)。l业务层有时候也被称作业务层有时候也被称作Enterprise Java BeansEnterprise Java Beans层,业务层和层,业务层和Web Web 层一起构成了三层结构的中间层,是电子商务应用的核心部分。层一起构成了三层结构的中间层,是电子商务应用

24、的核心部分。Jaa程序设计基础JSP技术基础4.4.企业信息系统层企业信息系统层(EIS)企业信息系统层运行企业信息系统软件,并负责存储企业数企业信息系统层运行企业信息系统软件,并负责存储企业数据。据。Jaa程序设计基础JSP技术基础上述上述J2EE层次如图所示层次如图所示图中的应用一是基于非图中的应用一是基于非WebWeb方式的,而应用二是基于方式的,而应用二是基于WebWeb方式的。方式的。DynamicHTML pagesJSP pagesEnterpriseBeansDatabaseDatabaseEnterpriseBeansApplicationClientClient tierW

25、ebtierBusinesstierEIStierClientMachineJ2EEServerMachineDatabaseServerMachineJ2EEApplication 1J2EEApplication 2Jaa程序设计基础JSP技术基础13.2.2 J2EE中的主要组件中的主要组件1.Servlet1.Servlet 它是一种简单高效动态页面技术,并且Servlet运行在服务器端。运行在服务器端就意味着它能够为用户提供非常广泛的功能和数据,而不必受客户端资源的限制。它是一种跨平台的纯Java服务器端程序,它扩展了基于“请求应答”机制的Web服务器的功能。开发Servlet除了有

26、JDK之外,我们还需要有JSDK。Jaa程序设计基础JSP技术基础2.JavaBeanslJavaBeans也是一些也是一些JavaJava类,它通常用来实现一些比较常用的简单功能,类,它通常用来实现一些比较常用的简单功能,并可以很容易地被重用或者是插入其他应用程序中去。并可以很容易地被重用或者是插入其他应用程序中去。lJavaBeans的设计原则主要是针对其中的公共变量或者属性以及公共方的设计原则主要是针对其中的公共变量或者属性以及公共方法而言的。法而言的。Jaa程序设计基础JSP技术基础Java Beans的变量必须遵循的原则如下:的变量必须遵循的原则如下:l可读写、只读、只写。可读写、只

27、读、只写。l简单,也就是说简单,也就是说Java BeansJava Beans的变量应该是单值或者数组。的变量应该是单值或者数组。Jaa程序设计基础JSP技术基础Java Beans的方法必须遵循的原则如下:的方法必须遵循的原则如下:l对于所有可读的属性,对于所有可读的属性,BeansBeans必须提供相应的方法以供外部读取必须提供相应的方法以供外部读取该属性的值。例如,某个该属性的值。例如,某个BeanBean拥有可读公共属性:拥有可读公共属性:public String name;那么它还必须提供一个公共方法:那么它还必须提供一个公共方法:public String getName();

28、l对于所有可写的属性,对于所有可写的属性,BeansBeans必须提供相应的方法以供外部修改必须提供相应的方法以供外部修改该属性的值,例如,某个该属性的值,例如,某个BeanBean拥有可写公共属性:拥有可写公共属性:public String name;那么它还必须提供一个公共方法:那么它还必须提供一个公共方法:public setName(String newName);l运用在网络上的运用在网络上的Java BeansJava Beans的主要任务就是在后台处理业务逻辑,的主要任务就是在后台处理业务逻辑,它可以和它可以和JSPJSP或者或者ServletServlet等管理页面的技术结合

29、起来使用。等管理页面的技术结合起来使用。Jaa程序设计基础JSP技术基础3.EJB EJB(Enterprise JavaBeans)EJB(Enterprise JavaBeans)是一种非常复杂的是一种非常复杂的Java BeansJava Beans,它,它必须定义一些特定的和客户化的方法和属性,来实现企业的核心业必须定义一些特定的和客户化的方法和属性,来实现企业的核心业务逻辑。务逻辑。Jaa程序设计基础JSP技术基础通常情况下,实现一个通常情况下,实现一个EJBEJB需要三段需要三段JavaJava程序,即:程序,即:l远程接口远程接口(Remote Interface)(Remote

30、 Interface)远程接口是一个远程接口是一个InterfaceInterface,用于定义客户可能调用的与业务相,用于定义客户可能调用的与业务相关的方法,例如货币转换、加入购物车、购买、付款等业务接口。关的方法,例如货币转换、加入购物车、购买、付款等业务接口。l本地接口本地接口(Home Interface)(Home Interface)本地接口也是一个本地接口也是一个InterfaceInterface,用来为用户提供创建、查找以及,用来为用户提供创建、查找以及删除一个删除一个EJBEJB对象,即为客户提供一个控制对象,即为客户提供一个控制EJBEJB的接口。的接口。lEnterpr

31、ise BeanEnterprise Bean 它是一个它是一个Enterprise BeanEnterprise Bean类对象,是真正实现业务逻辑的地点,类对象,是真正实现业务逻辑的地点,即实现即实现Remote InterfaceRemote Interface中定义的方法,以及与中定义的方法,以及与Home InterfaceHome Interface中定义的方法中真正调用的方法,如初始化、退出等。中定义的方法中真正调用的方法,如初始化、退出等。Jaa程序设计基础JSP技术基础4.XML lXML(ExtensibleMarkupLanguage,可扩展标记语言,可扩展标记语言)是一

32、种用于表达和描述文本数据的语言,所有支持是一种用于表达和描述文本数据的语言,所有支持XML(APIXML)应用程序接口的程序或者工具都能识应用程序接口的程序或者工具都能识别用别用XML描述的数据。描述的数据。lXML在某种程度上和在某种程度上和HTML有些相似,但两者的最大有些相似,但两者的最大不同在于不同在于HTML是用来描述输出的,而是用来描述输出的,而XML是用于描是用于描述数据的。述数据的。lHTML中使用的中使用的tag都是固定的,也就是说不能随便扩都是固定的,也就是说不能随便扩展,而展,而XML可以通过一定的定义机制,灵活地使用自可以通过一定的定义机制,灵活地使用自己喜欢的己喜欢的

33、tag,而不受任何限制。,而不受任何限制。Jaa程序设计基础JSP技术基础例如:例如:XML Bible Elliotte Rusty Harold 在这段描述中,有在这段描述中,有“book”“book”和和“auther”“auther”等自定义的等自定义的tagtag,使数,使数据的据的语义变得非常清晰语义变得非常清晰 Jaa程序设计基础JSP技术基础13.3 JSP技术概述技术概述 JSP(Java Server Pages)JSP(Java Server Pages)是是J2EEJ2EE平台中的一个重要组成部分,平台中的一个重要组成部分,是现今最流行的动态网络设计方法。是现今最流行的

34、动态网络设计方法。JSPJSP技术将服务器端技术将服务器端JavaJava和号和号称称WYSIWYG(what you see is what you getWYSIWYG(what you see is what you get,所见即所得,所见即所得)静态页静态页面技术面技术HTMLHTML完美地结合起来,使得网页的外观设计与隐藏在其后的完美地结合起来,使得网页的外观设计与隐藏在其后的商业逻辑截然分开,而且它是与商业逻辑截然分开,而且它是与WebWeb服务器和平台都无关的网页开服务器和平台都无关的网页开发技术,只要服务器支持发技术,只要服务器支持JavaJava,就能够支持,就能够支持JS

35、PJSP。Jaa程序设计基础JSP技术基础JSP的主要优势有以下几点:的主要优势有以下几点:l动静分离动静分离 它将它将WebWeb页面中有关输出格式的表达部分与后端数据相关的业务逻辑部页面中有关输出格式的表达部分与后端数据相关的业务逻辑部分有效的分离,使程序员从繁重的格式设计中解脱出来,可以专心从事分有效的分离,使程序员从繁重的格式设计中解脱出来,可以专心从事业务逻辑的实现工作,并可以将页面设计工作真正交付给美工来完成,业务逻辑的实现工作,并可以将页面设计工作真正交付给美工来完成,使应用开发效率空前提高。使应用开发效率空前提高。l简单易用简单易用 由于上述特性,由于上述特性,JSPJSP本身

36、的结构清晰,逻辑简单,可以很容易被非专业本身的结构清晰,逻辑简单,可以很容易被非专业人员掌握,便于开发工作的开展。人员掌握,便于开发工作的开展。l可移植性可移植性 由于由于JavaJava本身的平台无关性,基于本身的平台无关性,基于JavaJava的的JSPJSP技术也同样继承了可移植技术也同样继承了可移植性的特点,只要服务器端支持性的特点,只要服务器端支持JavaJava,JSPJSP就可以运行。就可以运行。Jaa程序设计基础JSP技术基础13.3.1 JSP的技术原理的技术原理1.JSP的实质的实质 首先来看一段首先来看一段JSPJSP代码,这段程序的功能是在屏幕上显示当前日期,其代代码,

37、这段程序的功能是在屏幕上显示当前日期,其代码如图中上部的方框所示。码如图中上部的方框所示。编译编译Today is:.jsp文件Servlet编译编译Servlet 容器其运行结果如图所示其运行结果如图所示Jaa程序设计基础JSP技术基础这段代码经过编译之后,会在服务器端变成下面这样一段代码这段代码经过编译之后,会在服务器端变成下面这样一段代码 l程序代码程序代码 JSP JSP是对是对ServletServlet的一种抽象,的一种抽象,JSPJSP并没有增加任何本质上不能用并没有增加任何本质上不能用ServletServlet实现的功能,但是,在实现的功能,但是,在JSPJSP中编写静态中编

38、写静态HTMLHTML更加方便,不必更加方便,不必再用再用 println println语句来输出每一行语句来输出每一行HTMLHTML代码。代码。Jaa程序设计基础JSP技术基础2.JSP的执行过程的执行过程 一个一个JSPJSP程序的执行经历了初始化、服务和退出程序的执行经历了初始化、服务和退出3 3个步骤,即依次调用了个步骤,即依次调用了3 3个方法:个方法:jspInit()jspInit()和和_jspService()_jspService()以及以及jspDestroy()jspDestroy(),其中,例子中的,其中,例子中的JSPJSP代码都是被嵌入代码都是被嵌入_jspS

39、ervice()_jspService()这个方法中去的。这个方法中去的。JSPJSP的执行过程如图的执行过程如图所示。所示。jspInit()_jspService()jspDestroy()“JSP”ServletiniteventrequestresponsedestroyeventJaa程序设计基础JSP技术基础3.JSP的两种访问模型的两种访问模型 JSPJSP有两种不同的访问数据库机制,也就是所谓的模型一有两种不同的访问数据库机制,也就是所谓的模型一(Model(Model 1)1)和模型二和模型二(Model 2)(Model 2),这两种模型的主要区别在于大量的客户请,这两种模

40、型的主要区别在于大量的客户请求在什么地方处理,因此,这两种模型实质上是为开发人员提供了求在什么地方处理,因此,这两种模型实质上是为开发人员提供了两种页面程序开发的模式。两种页面程序开发的模式。Jaa程序设计基础JSP技术基础(1)(1)模型一模型一 JSP JSP负责处理浏览器端发送来的客户请求并负责向用户返回结果,其中包负责处理浏览器端发送来的客户请求并负责向用户返回结果,其中包含的业务逻辑通过调用含的业务逻辑通过调用Java BeanJava Bean来实现,而来实现,而Java BeanJava Bean负责与企业数据库负责与企业数据库的交互。其结构如图所示。的交互。其结构如图所示。41

41、RequestResponseJSPJava Bean23Servlet ContainerEnterprise Information Systems(EIS)BROWSERJaa程序设计基础JSP技术基础(2)(2)模型二模型二l模型二是一种遵循模型二是一种遵循MVC(Model-View-ControllerMVC(Model-View-Controller,模型,模型-视图视图-控制控制者者)模型的先进思想。模型的先进思想。l模型二如图所示。模型二如图所示。Jaa程序设计基础JSP技术基础13.3.2 JSP与与ASPl这两种技术的对比这两种技术的对比Jaa程序设计基础JSP技术基础1

42、3.3.3 JSP与与Servlet的比较的比较 Servlet Servlet向页面输出只能使用向页面输出只能使用out.println()out.println()方法,而不能像在方法,而不能像在JSPJSP中那中那样,把原封不动的样,把原封不动的HTMLHTML标记引入程序中。标记引入程序中。例如前面例如前面HelloWorldHelloWorld的例子,输出同样的结果,如果使用的例子,输出同样的结果,如果使用JSPJSP,则只需要下,则只需要下面代码就可以了:面代码就可以了:Hello World!%out.println(Hello World!);%Jaa程序设计基础JSP技术基础

43、13.3.4 JSP运行环境的配置运行环境的配置l常见的支持常见的支持J2EEJ2EE的部分的部分WebWeb服务器见表服务器见表13.213.2l其中,其中,“独立独立”表示该软件可以独立作为表示该软件可以独立作为WebWeb服务器,而服务器,而“插件插件”表示该软件可以作为其他表示该软件可以作为其他WebWeb服务器服务器 Jaa程序设计基础JSP技术基础13.4 JSP基本语法基本语法 JSPJSP程序通常由以下程序通常由以下3 3部分组成:部分组成:l静态的静态的HTMLHTML或或XMLXMLlJSPJSP标记标记l符合符合JavaJava语法的程序段语法的程序段Jaa程序设计基础J

44、SP技术基础13.4.1 变量声明与表达式变量声明与表达式1.变量声明变量声明JSP变量声明的语法格式如下:例如:Jaa程序设计基础JSP技术基础解释:解释:l凡是程序中要使用的变量和函数都必须事先声明,否则编译会出错,而且建议在声明变量时凡是程序中要使用的变量和函数都必须事先声明,否则编译会出错,而且建议在声明变量时对其进行初始化,否则,该变量的值为一个随机数。对其进行初始化,否则,该变量的值为一个随机数。l声明必须以分号结尾。声明必须以分号结尾。l在在中可以一次性声明多个变量,之间用分号分隔。中可以一次性声明多个变量,之间用分号分隔。l声明的内容只在一个页面内有效。声明的内容只在一个页面内

45、有效。l也可以在这个地方做一个完整的类声明。也可以在这个地方做一个完整的类声明。例如:例如:Jaa程序设计基础JSP技术基础2.表达式表达式lJSP表达式的语法格式如下:表达式的语法格式如下:l例如:例如:Jaa程序设计基础JSP技术基础l表达式通常用于计算并输出变量值,在页面设计中,经常会把它嵌入在表达式通常用于计算并输出变量值,在页面设计中,经常会把它嵌入在HTML中,中,来显示与用户相关的个性化信息,例如:来显示与用户相关的个性化信息,例如:欢迎页面欢迎页面您好您好:l假设当前用户名为假设当前用户名为Tierney,则能够看到如图所示的结果,则能够看到如图所示的结果Jaa程序设计基础JS

46、P技术基础13.4.2 程序段程序段l程序段是真正书写程序段是真正书写JSP脚本的部分,是我们编脚本的部分,是我们编写写JSP的主体,主要是通过一对的主体,主要是通过一对tag包围起来的包围起来的部分。部分。Jaa程序设计基础JSP技术基础1.程序段语法结构程序段语法结构lJSP程序段的语法结构如下:程序段的语法结构如下:例如:例如:%booleanbigger=true;doublefreeMem=Runtime.getRuntime().freeMemory();doubletotlMem=Runtime.getRuntime().totalMemory();doublepercent=f

47、reeMem/totlMem;if(percentl解释:解释:程序段中只能包含符合程序段中只能包含符合Java语法的代码,不允许出现语法的代码,不允许出现HTML标记、标记、JSP标记、标记、JSP指令等元指令等元素。素。程序段中也可以对变量进行声明,就像在编写普通的程序段中也可以对变量进行声明,就像在编写普通的Java程序一样,但最好对变量进行初始程序一样,但最好对变量进行初始化,否则,有些服务器可能会出错。化,否则,有些服务器可能会出错。Jaa程序设计基础JSP技术基础2.注释注释lJSP注释的语法结构如下:注释的语法结构如下:例如:例如:l解释:解释:注释的部分在系统进行编译时将被忽略

48、。注释的部分在系统进行编译时将被忽略。在浏览器端查看源文件时,看不到用在浏览器端查看源文件时,看不到用JSP注释标记注释掉的语句,而使用注释标记注释掉的语句,而使用HTML注释标记注释标记()注释掉的,还能在客户端的源文件中看到。注释掉的,还能在客户端的源文件中看到。程序段中的注释与程序段中的注释与Java语法相同。语法相同。在代码中适当增加注释是提高程序可读性的好习惯。在代码中适当增加注释是提高程序可读性的好习惯。Jaa程序设计基础JSP技术基础13.4.3 基本指令基本指令lJSP指令是一些发送给指令是一些发送给JSP引擎的消息,它们引擎的消息,它们并不直接产生出可见的输出内容,而是告诉并

49、不直接产生出可见的输出内容,而是告诉JSP引擎如何处理下面的引擎如何处理下面的JSP页。页。lJSP指令的语法格式如下:指令的语法格式如下:Jaa程序设计基础JSP技术基础1.Page指令指令lpage指令的语法结构如下:指令的语法结构如下:l解释:解释:page指令用于给指令用于给JSP文件中的全局属性赋值,它的赋值动作能够作用于整个页面,可以写在文件中的全局属性赋值,它的赋值动作能够作用于整个页面,可以写在文件的任何位置,不过建议读者最好写在最前面。文件的任何位置,不过建议读者最好写在最前面。Jaa程序设计基础JSP技术基础属性:属性:limport=“package.class”或或im

50、port=“package.class1,.,package.classN”用于引入程序中需要使用的用于引入程序中需要使用的Java程序包,多个包之间用逗号。程序包,多个包之间用逗号。例如:例如:lcontenType=“MIME-Type”或或contentType=“MIME-Type;charset=Character-Set”用于指定输出的用于指定输出的MIME类型,默认为类型,默认为“text/html”,默认字符集,默认字符集为为ISO-8859-1。例如:例如:。Jaa程序设计基础JSP技术基础lisThreadSafe=“true|false”如果值为如果值为“true”(默认

51、默认)表示进行普通的表示进行普通的Servlet处理,多个请求将被一个处理,多个请求将被一个Servlet实例并行处理。值为实例并行处理。值为“false”时表示时表示Servlet以单线程模式以单线程模式(SingleThreadModel)工作,一个工作,一个Servlet同时只能为一个请求服务,多个并行的请求可能会分配给不同同时只能为一个请求服务,多个并行的请求可能会分配给不同的的Servlet来处理。来处理。lsession=“true|false”如果值为如果值为“true”(默认默认)表示表示session是可用的,值为是可用的,值为“false”时表示时表示session不可不可

52、用。这时如果试图使用与用。这时如果试图使用与session相关的元素,会出现错误。关于相关的元素,会出现错误。关于session的使用,的使用,我们在后面作详细介绍。我们在后面作详细介绍。lbuffer=“sizekb|none”该属性的作用是为该属性的作用是为JspWriter,即,即out对象的输出确定缓冲大小。默认由服务器而对象的输出确定缓冲大小。默认由服务器而定,一般是定,一般是8KB。lautoflush=“true|false”如果值为如果值为true(默认默认),表示当缓冲满时将自动清空;值为,表示当缓冲满时将自动清空;值为false时,表示当缓冲满时,表示当缓冲满时递出一个异常

53、时递出一个异常(exception),这个选项很少使用。当,这个选项很少使用。当buffer=“none”时,此属性时,此属性的值不能为的值不能为false。Jaa程序设计基础JSP技术基础lextends=“package.class”该属性指出将要生成的Servlet使用哪个超类。使用该属性应当十分小心,因为服务器可能已经在用自定义的超类。linfo=“message”定义当前JSP文件的一些相关信息,如作者、功能描述等,可以通过调用getServletInfo()方法得到它的值。lerrorPage=“URL”指定一个JSP页面来处理任何当前页面并未处理的意外错误。lisErrorPag

54、e=“true|false”该属性指示当前页面是否可以作为另一JSP页面的错误处理页面。默认值为false。llanguage=“java”声明脚本使用的语言,不过,目前惟一的合法选项就是“java”。Jaa程序设计基础JSP技术基础2.include指令指令linclude指令用于在指令用于在JSP文件转换成文件转换成Servlet时引时引入一个静态文件,这个文件可以是入一个静态文件,这个文件可以是JSP和和HTML以及文本文件等。以及文本文件等。lInclude指令的语法格式如下:指令的语法格式如下:Jaa程序设计基础JSP技术基础l解释:解释:relativeURL指欲引入文件的相对路径

55、。指欲引入文件的相对路径。l例如,许多网站的每个页面都有一个同样的导航条,这样的话,同一份例如,许多网站的每个页面都有一个同样的导航条,这样的话,同一份HTML代码就可能重复出现在整个网站的每个页面上。为了避免重复,代码就可能重复出现在整个网站的每个页面上。为了避免重复,可以单独编写一个页面来描述这个导航条,然后利用可以单独编写一个页面来描述这个导航条,然后利用include指令,把这指令,把这个文件包含在每个主页面里。这样的文件即清晰又方便维护。例如:个文件包含在每个主页面里。这样的文件即清晰又方便维护。例如:JSP语法Jaa程序设计基础JSP技术基础13.4.4 将将JSP与与HTML结合

56、起来结合起来l将将JSPJSP的的JavaJava风风格格代代码码嵌嵌入入HTMLHTML是是非非常常简简单单的的,基基本本上上也没有什么规则可言。也没有什么规则可言。l两两者者在在编编写写页页面面时时可可以以随随意意互互相相嵌嵌入入,但但过过于于频频繁繁的的转换可能会影响页面的响应速度。转换可能会影响页面的响应速度。Jaa程序设计基础JSP技术基础例13.2 JSP与HTML互相嵌入l其功能是在屏幕上显示其功能是在屏幕上显示“hello”“hello”。l程序代码程序代码l其运行结果如图所示其运行结果如图所示 Jaa程序设计基础JSP技术基础例例13.3 用用JSP独立实现输出功能独立实现输

57、出功能l程序代码程序代码l此程序的运行结果如图所示此程序的运行结果如图所示 Jaa程序设计基础JSP技术基础13.4.5 本节综合实例本节综合实例 例例13.4基本语法部分综合实例基本语法部分综合实例l这个程序的功能是在屏幕上请用户输入姓名,然后向用户问好。这个程序的功能是在屏幕上请用户输入姓名,然后向用户问好。l程序代码程序代码l这个程序分成了两个这个程序分成了两个.jsp页面,程序的主要部分放在页面,程序的主要部分放在greeting.jsp中,其中的内容包括显示图片、显示用户名输入框以及提交按钮,中,其中的内容包括显示图片、显示用户名输入框以及提交按钮,程序另外还提供了一个程序另外还提供

58、了一个response.jsp,作用是将返回给用户的问候,作用是将返回给用户的问候显示出来,主程序通过显示出来,主程序通过include指令将这段指令将这段.jsp页面包含进来。页面包含进来。Jaa程序设计基础JSP技术基础l该程序的运行结果如图所示该程序的运行结果如图所示l在输入框中输入你的名字,按在输入框中输入你的名字,按Submit按钮,得到如图所示的结果,按钮,得到如图所示的结果,其中的其中的“Hello,Tierney!”就是由就是由response.jsp显示出来的显示出来的 Jaa程序设计基础JSP技术基础13.5 JSP标准动作标准动作 lJSP动作是利用XML语法格式的标记来

59、控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用Java Beans组件、把用户重定向到另外的页面和为Java插件生成HTML代码。Jaa程序设计基础JSP技术基础13.5.1 jsp:include动作linclude动作的目的是把其他文件的正文插入到这个程序中来动作的目的是把其他文件的正文插入到这个程序中来。linclude动作的语法动作的语法linclude动作的语法格式如下:动作的语法格式如下:jsp:includepage=relativeURL|flush=true/l或者或者jsp:includepage=relativeURL|flush=truejsp:p

60、aramname=parameterName value=parameterValue|/+Jaa程序设计基础JSP技术基础例13.5 include动作l下面的下面的JSP页面把四则新闻摘要插入一个页面把四则新闻摘要插入一个“WhatsNew?”页面。改变新闻摘要时只需改变这页面。改变新闻摘要时只需改变这4个文件,个文件,而主而主JSP页面却可以不进行修改。页面却可以不进行修改。l程序代码程序代码Jaa程序设计基础JSP技术基础2.include动作的属性动作的属性include动作的属性如下:动作的属性如下:lpage=relativeURL|被包含文件的相对路径或者用一个表达式的值来代替

61、被包含文件的相对路径或者用一个表达式的值来代替表示这个相对路径。表示这个相对路径。lflush=“true”通常情况下,此属性值必须为通常情况下,此属性值必须为true。ljsp:paramname=parameterName value=parameterValue|/子句能够为引入的文件传递参数。子句能够为引入的文件传递参数。Jaa程序设计基础JSP技术基础13.5.2 使用Java Bean1.jsp:useBean动作ljsp:useBean动作的语法格式如下:jsp:useBean id=beanInstanceName scope=scope class=package.class

62、 type=package.class beanName=package.class|type=package.class/|other elements Jaa程序设计基础JSP技术基础l解释:该动作用来装载一个将在JSP页面中使用的Java Bean。这个功能非常有用,因为它使得我们可以发挥Java组件重用的优势。其含义是创建一个package.class的实例,然后把它绑定到变量id上,并使用scope定义Bean的作用范围。l属性:1.id=“beanInstanceName”用来绑定Bean实例的变量。1.class|type=“package.class”表明该Bean是对哪个类的

63、实例化。1.scope=“page|request|session|application”表示该Bean的有效范围。Jaa程序设计基础JSP技术基础2.jsp:setProperty动作动作ljsp:setProperty动作的语法格式如下:动作的语法格式如下:jsp:setPropertyname=beanInstanceName property=*|property=propertyName|param=parameterName|property=propertyNamevalue=string|/l解释:解释:这个动作的含义就是使用这个动作的含义就是使用Bean中相应的中相应的se

64、t()方法设置一个或多个方法设置一个或多个属性的值,值的来源是通过属性的值,值的来源是通过value属性明确给出,或者利用属性明确给出,或者利用Request对象中相应的参数。对象中相应的参数。Jaa程序设计基础JSP技术基础属性:属性:lname=“beanInstanceName”这个属性是必须的,用来表明对哪个Bean实例执行下面的动作,这个值和jsp:useBean中定义的id必须对应起来,包括大小写都必须一致,否则会导致错误。lproperty=“*”或者“propertyName”这个属性是必须的,它表示要设置哪个属性。如果property的值是“*”,表示所有名字和Bean属性名

65、字匹配的请求中的参数都将被传递给相应的属性set()方法。lvalue=“string|”这个属性是可选的,它用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf()方法自动转换成数字、boolean,Boolean,byte,Byte,char和Character。lparam=“parameterName”这个属性是可选的,它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set()方法。Jaa程序设计基础JSP技术基础3.jsp:getProperty动作动作ljsp:getProperty动作的语

66、法格式如下:l解释:这个动作提取指定Bean属性的值,转换成字符串,然后输出。Jaa程序设计基础JSP技术基础属性属性:lname=“beanInstanceName”这个属性是必须的,用来表明对哪个Bean实例执行下面的动作,这个值和jsp:useBean中定义的id必须对应起来,包括大小写都必须一致,否则会导致错误。lproperty=“propertyName”这个属性是必须的,它表示要获取哪个属性的值。Jaa程序设计基础JSP技术基础4.实例实例例例13.6使用使用JavaBeanl下面是一个很简单的例子,它的功能是装载一个Bean,然后设置/读取它的message属性。l程序代码l其运行结果如图所示 Jaa程序设计基础JSP技术基础例例13.7 利用请求变量为利用请求变量为Bean设置属性设置属性l程序代码程序代码l其运行结果如图所示其运行结果如图所示l在文本框中输入在文本框中输入“Helloguys”,按,按Submit按钮,按钮,便得到如图所示的结果便得到如图所示的结果 Jaa程序设计基础JSP技术基础13.5.3 jsp:forward动作动作ljsp:forword动

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!