[计算机软件及应用]第1章JSP概述.ppt_第1页
[计算机软件及应用]第1章JSP概述.ppt_第2页
[计算机软件及应用]第1章JSP概述.ppt_第3页
[计算机软件及应用]第1章JSP概述.ppt_第4页
[计算机软件及应用]第1章JSP概述.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

,主讲:马建红 电话:63887290 办公室:水环楼307 邮箱:,JSP应用开发技术,JSP应用 与 开发技术,1、课程的地位、先修课程,本课程是一门专业必修课程,它主要讲授如何使用JSP程序设计的原理、方法和技术开发基于B/S架构的动态网站。 先修课程:要求学习者具备一定的Java程序设计基础,因此必须先修Java程序设计;该课程需要操作数据库,因此必须先修数据库原理;另外由于牵涉网页的设计所以先修课还需要网页设计。,2,3,课程在专业课程体系中的地位,JSP,项目实训,课程特点,1,以Java和HTML这两类语法为基础,3,综合以往所学知识能真正开发一个实用的项目,2,结合数据库应用,实训的基础,4,2、教学目标,设计开发 JSP动态网站,应用程序设计Java,应用网页设计,采用MVC模式,辅助标签库,连接某种数据库 管理系统,采用JSP+ JavaBean,以知识为本位 以能力培养为导向,课程的任务,掌握JSP编程技术: 掌握JSP的语法; 掌握JSP对文件的操作; 掌握JSP对数据库的操作; 掌握JSP中采用的JavaBean; 掌握JSP中采用的Servlet技术; 掌握MVC编程模式。,课程的知识点,3、教学内容及学时分配,第7章 JavaBean和表单处理; 第8章 JSP中文件的操作。 学时:8+4,第4章 JSP基本语法;第5章 JSP内置对象;第6章 使用Cookie记录信息 学时:16+8,第1章 JSP概述; 第2章 JSP动态网页设计基础; 第3章 JSP环境配置 学时:8+4,1、JSP编程基础 与环境配置,2、JSP应用开发基础,3、JSP应用开发进阶,第15章标准标签库(JSTL); 第16章创建自定义标签库。 学时:4+2 总学时:72+36=108,第12章Servlet基础;第13章 使用Servlet过滤器和监听器; 第14章 使用MVC模式实现BBS论坛。 学时:16+8,第9章 数据库操作基础; 第10章应用JDBC进行数据库开发; 第11章JSP数据库应用实例-留言板的设计与实现 学时:16+8,4、JSP数据库编程基础,5、Servlet技术,6、标签库,7、Web应用开发实例 学时:4+2,重点和难点,4、教学资料,教材 JSP应用开发详解(第三版) JSP应用开发技术 JSP应用与开发技术 教学用软件和资料 FTP /马建红11JSP 网络资源,项目分组作品展示,关于教材,JSP(Java Server Pages)是目前动态网站开发技术中最典型的一种。 JSP继承了Java语言的优势,是一种与平台无关的开发技术,而Java技术也赋予了JSP为用户提供强大功能的技术支持。 JSP语言虽然综合性地包括了Java和HTML这两类语法,但不能通过简单地使用JSP,用这种方式开发出来的Web应用程序是非常难以维护的。 对JSP使用观念的建立,以及JavaBean、数据库、Servlet等技术的了解运用是利用JSP开发复杂的商业级网站的重点。,12,教材的组织结构,本书共16章,可以分成七个部分。 第一部分 JSP编程基础与环境配置,包括三章:第1章 JSP概述;第2章 JSP动态网页设计基础;第3章 JSP环境配置,介绍JSP应用技术的前导知识和开发环境的搭建。 第二部分JSP应用开发基础,包括三章:第4章 JSP基本语法;第5章 JSP内置对象;第6章 使用Cookie记录信息,详细讲解了JSP技术的基本语法。,13,第三部分 JSP应用开发进阶,包括两章:第7章 JavaBean和表单处理;第8章 JSP中文件的操作。 这部分主要介绍了JavaBean分离表示与实现、使用JSP处理HTML表单、使用Java类库里的I/O类,开发具备文件存取功能的网页程序。 第四部分 JSP数据库编程基础包括三章:第9章 数据库操作基础;第10章应用JDBC进行数据库开发;第11章JSP+JavaBean+DB的实例,以MySql数据库为例详细讲解了JSP中使用数据库的操作包括JDBC、连接池、分页处理等技术。,14,第五部分 Servlet技术 包括两章:第12章Servlet基础;第13章 使用Servlet过滤器和监听器;通过实例讲述了Servlet的开发和部署。 第六部分 标签库 包括两章:第14章标准标签库(JSTL);第15章创建自定义标签库。这部分是使用JSP进行程序开发的扩展知识。 第七部分 第16章通过一个网上书店的实例讲解了Web开发的应用。,15,5、考核方法,平时考核30%、期末考试70%,20%,70%,注重理解和应用 难易适中,课堂考勤 课堂提问 上机检查 作业上交,上交项目成品,10%,第1章 JSP概述,1.1 软件编程体系简介 1.2 企业应用开发架构 1.3 JSP概述 1.4 JSP知识体系及学习之路,17,本章学习目标: 了解软件编程体系 了解企业应用开发架构 掌握JSP基本概念 掌握JSP的知识体系 了解JSP的学习之路,18,1.1软件编程体系简介,19,20,客户机/服务器(Client/Server,C/S)模式 最大特点是在每个用户端需要安装程序,所有用户端程序和中心服务器进行信息交互 优点是用户端程序一致,比较方便控制,服务器端和用户本地的数据很容易进行交互,通信速度比较快。 缺点是每个用户都需要安装客户端,比较繁琐,而且不能很好的跨操作系统平台。,C/S结构编程体系,21,服务器只集中管理数据,计算任务分散在客户机上,客户机和服务器之间通过网络协议来进行通讯; 客户端先进行简单的预处理,将处理后的结果再提交给服务器进行进一步的处理。 这种模式我们也通常成为胖客户端模式。 C/S结构通常适用于具有固定的用户端或者少量的用户端,并且是对安全性要求比较高的应用。 典型的系统:QQ、MSN、邮局信息管理系统、飞机票火车票售票系统。,22,浏览器/服务器(Browser/Server,B/S)模式 客户端使用通用的浏览器(如:NetScape、Explorer)代替各种应用软件,服务器则为Web服务器。浏览器和服务器之间通过TCP/IP通信协议进行连接,浏览器发出请求,由Web服务器向后台取出数据进行处理,并将结果返回给浏览器。 这种模式,我们通常将其称为瘦客户端模式。 典型的系统:网上银行、网上购物、Blog等等,B/S结构编程体系,23,B/S基础知识,万维网(WWW) 是世界上最大的电子信息仓库,由众多的Web站点组成。每个Web站点都包含一些特定的资源,这些资源存放于一台或多台被称作Web服务器的计算机之上。 如电子商务网站(阿里巴巴等)、以及我们日常使用的百度、搜狐、新浪、淘宝等等一些系统。,B/S基础知识-网页的分类:,静态网页:是指一旦网页制作成功就不能随意更改或需要专业的技术人员进行修改。 不能实现用户与服务器之间的交互,制作周期较长,更改困难,适应于一些不需要经常修改内容的网页。 郑大学校概况/gaikuang.htm,静态网页及其执行过程: 任何Web服务器都支持静态网页: 首先用户在浏览器的地址栏中键入要访问的地址,并回车出发请求 浏览器将请求发送到指定的Web服务器上。 Web服务器接收请求并根据htm或html后缀判断所请求的静态网页 Web服务器从硬盘或者内存中读取正确的htm页面,然后将其送回用户浏览器。,B/S基础知识-网页的分类:,动态网页:是指能够根据用户的请求而动态生成显示的结果。 不需要维护人员经常手动更新,它能够根据不同的时间,不同的人产生不同的页面。 目前绝大多数的网站采用的都是动态网页技术如JSP、ASP、PHP以及CGI技术等。 / 动态网页技术根据实现的不同还可以分为: 客户端动态网页技术 服务器端动态网页技术,客户端动态网页技术,与静态网页非常类似: 只是客户端的浏览器在接收到服务器端传送而来的资源时,还需要负责对其中的脚本进行解释执行,并产生动态效果。 实现的语言有:javaScript和VBScript脚本语言。,服务器端动态网页技术:,服务器端动态网页技术和我们前面讨论的两种运行原理不同: 首先用户在浏览器的地址栏中键入要访问的地址,并回车出发请求 浏览器将请求发送到指定的Web服务器上。 Web服务器接收请求并根据后缀(如.jsp、php)判断所请求的动态网页。 Web服务将这个动态网页文件从头到尾执行,并根据执行的结果生成相应的HTML文件 将生成的HTML文件送回浏览器 用户端的浏览器对这些HTML文件进行解析并显示,主流动态页面技术,目前主要是3P技术 ASP(Active Server Pages) JSP(Java Server Pages) PHP(Hypertext Preprocessor),微软公司,由sun公司倡导,多家公司参与建立的一种工业标准,获得了大多数厂商的支持,是免费软件,不是工业标准,没有固定厂商的支持,1.2 企业应用开发架构,在构建企业级应用的时候,通常需要大量的代码,而且这些代码一般分布在不同的计算机上,划分代码运行在不同计算机上的理论就是多层设计理论。 企业级应用系统通常分成 两层 三层 N层架构,31,两层架构,传统的两层应用包括用户接口和后台程序,后台程序通常是一个数据库,用户接口直接同数据库进行对话。实现上,通常使用JSP、ASP或者VB等技术编写这类软件,结构如图 两层应用架构显示逻辑层一般由HTML、JSP、ASP实现,通过JSP和ASP直接和数据库相连,32,三层架构,在两层应用中,应用程序直接同数据库进行对话。三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常这个层叫做“商务逻辑层”,如图,33,N层架构,如果某个应用超过三个独立的代码层,那么这个应用叫做N应用,就不再叫四层或者五层等名称,而是统称为N层。如图,34,开发架构比较,两层架构的优点是开发过程比较简单,利用服务器端的程序直接访问数据库,部署起来比较方便。缺点是程序代码维护起来比较困难,程序执行的效率比较低,用户容量比较少。 三层架构基本解决了两层架构的缺点,将显示部分和逻辑流程控制分开,利用服务器应用程序实现显示部分,利用商务逻辑层实现程序的流程控制,分层使维护变的方便一些,而且执行效率也会有所提高,但是相对部署起来就比较困难一些。 根据实际的需要,会进一步细化每一层,或者添加一些层,就形成了N层架构,和三层架构一样,组件化的设计使维护相对容易,但是部署相对困难。,35,1.3 JSP概述,JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 用JSP开发的Web应用是跨平台的。 JSP的1.0规范的最后版本是1999年9月推出的,最新版本是2003年发布的JSP2.0。,36,什么是JSP,JSP技术是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 以下是helloWorld.jsp的源代码,37, Hello World! ,HTML语句,用“% %”嵌入动态部分,38,在Eclipse+tomcat环境下的运行效果如下图所示:,JSP文件的主要结构:,39, . 其他 HTML 语言 其他 HTML 语言 ,JSP技术使用Java编程语言编写类XML的tags和scriptlets: 来封装产生动态网页的处理逻辑。 网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。 JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。,40,JSP的特点: 分离静态内容和动态内容 使用JSP,程序员可以使用HTML或XML标记来设计和格式化静态内容,并通过JSP标记及JavaBean组件来制作动态内容。 服务器将执行JSP标记和小脚本程序,并将结果与页面中的静态部分结合后以HTML页面的形式发送给客户端浏览器。 程序员可以将一些业务逻辑封装到JavaBean组件中,Web页面的设计人员可以利用程序员开发的JavaBean组件和JSP标记来制作出动态页面 JSP的执行效率比较高 编写简单 跨平台 JSP是以Java为基础开发的,只要服务器支持JSP,就可以运行使用JSP开发的Web应用程序,体现了它的跨平台、跨服务器的特点。 在数据库操作中, JSP中使用Java API提供的JDBC来连接数据库,JDBC是独立于平台的。 可以嵌套在网页中,41,JSP技术原理,本质上,JSP是Servlet API的一个扩展。 JSP在处理请求之前都要编译成Servlet,所以它具有Servlet的所有优势,包括访问Java API。 简单的说,一个JSP页面就是包含了能够生成动态内容的可执行应用代码的HTML网页。,42,43,JSP运行原理,44,当服务器第一次接收到对某个页面的请求时,JSP引擎就开始进行上述的处理过程,将被请求的JSP文件编译成Class文件。 在后续对该页面再次进行请求时,若页面没有进行任何改动,服务器只需直接调用Class文件执行即可。 所以当某个JSP页面第一次被请求时,会有一些延迟,而再次访问时会感觉快了很多。如果被请求的页面经过修改,服务器将会重新编译这个文件,然后执行。,45,Servlet概念,Servlet概念 Servlet是运行在服务器上的Java程序,是一个中间层,主要用来处理客户端请求,并对客户端请求进行响应,还可以连接应用服务。 Servlet是在服务器端实现动态网页的一种技术,46,JSP生成的Servlet的生命周期,47,Servlet的生命周期: 1.客户端向服务器发出请求,服务器根据客户端的请求,找到相应的Servlet类 2.判断该Servlet是否在内存中加载?若未加载,创建该Servlet实例,调用init()方法完成初始化操作。若已经加载,转3 3. 调用service()方法对客户端进行响应。等待下一次请求。在Servlet生命周期中,service()方法是其中的核心。每当客户端向Servlet发出一个请求时,该方法就会被调用,对用户的请求进行处理,并返回响应。 4.结束,调用destroy()方法。当服务器端不再需要该Servlet的时候,服务器调用destroy()方法卸载该Servlet,释放Servlet运行时占用的资源。,48,Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。 它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。,49,JSP的运行原理,JSP和其它动态网站开发技术,随着Internet和电子商务等应用的发展,动态网页技术诞生了。 动态网页有以下几个特点: 交互性:即网页会根据用户的要求和选择而动态改变和响应。 自动更新:即无需手动更新HTML文档,自动生成新的页面,这可大大节省工作量。 因时因人而变:即当不同的时间、不同的用户访问同一网址时会产生不同的页面,这就是所谓的个性化技术,51,动态网页技术:CGI ASP PHP JSP CGI:Common Gateway Interface ASP:Active Server Page PHP:Hypertext Preprocessor JSP:Java Server Page CGI (Common Gateway Interface) 公共网关接口,是外部程序和Web服务器之间的标准编程接口。 现在已经很少用,当大批人同时使用一个CGI应用程序时,服务器的速度很受影响。 在早期,动态网页只有采用CGI技术,但由于编程困难、效率低下、修改复杂等缺陷,所以逐渐被ASP、PHP、JSP技术取代。,52,JSP技术,Java Server Pages; 动态网页技术标准; 动态页面与静态页面分离,跨平台性; JSP (*.jsp)=HTML文件(*.htm,*.html)+Java程序片断+JSP标记; 以Servlet技术为基础,提供强大的组件(Java Bean)支持功能; 是一种开发Web应用的理想构架。,53,JSP的优势 程序可以跨台平执行。 JSP可以让开发人员在任意环境中进行开发,在任意环境中进行系统部署,在任意环境中扩展应用程序。 多样化和功能强大的开发工具支持。 Java有许多非常优秀的开发工具,而且有许多可以免费得到,并且其中的许多已经可以顺利地运行于多种平台之下。 强大的可伸缩性。 从只有一个小的jar文件就可以运行servlet/jsp到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,一台服务器到无数台服务器,Java显示了巨大的生命力。,54,JSP的弱势 跨平台的功能和极度的伸缩能力极大地增加了产品的复杂性。 它在扩展时需要分成多少块,那么java系统中就有多少种产品,所以用户可能会看到jre,jdk,jsdk,jswdk等,而实际上它们是密不可分的。只要将它们有效地搭配在一起,就可以产生强大的效能。当然,这同时也使应用程序变得非常复杂。 JSP运行是用class常驻内存来完成的,虽然提高了响应速度,但要占用相当内存。 Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。 JSP程序调试不方便。 JSP页面首先被转化为一个.java文件(Servlet),然后再被编译。这样,出错信息实际上指向的是经过转化的那个.java文件而不是jsp本身。,55,JSP与ASP/ASP.NET的比较,ASP ASP(全称Active Server Pages)微软系统的脚本语言,利用它可以执行动态的Web服务应用程序。执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。,56,相同点: ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。都能够实现程序编写页面设计的的分离;都是动态的生成HTML;都是在服务器端运行的。 区别: ASP的编程语言是VBScript之类的脚本语言,JSP用的是Java; 两种语言引擎用完全不同的方式处理页面中嵌入的程序代码; JSP实现处理逻辑和页面表示分离,而ASP处理逻辑和页面表示混杂在一起,对于很多大型应用难以接受。 JSP的平台无关性,ASP基本上只能局限于Micorosoft公司的操作系统平台之上 。,57,ASP.NET 是微软集成.NET平台发展而来的服务器端网页语言,使用.NET提供的类别库与对象导向理论建构的服务器端动态网页。 高效性 ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。 简单性 .NET可视化编程,提供基于组件、事件驱动的可编程网络表单,大大简化了编程。一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。如ASP.net页面构架允许你建立你自己的用户分界面。,58,脚本语言,ASP使用的脚本语言是VBScript和JScript. VBScript和Jscript都是在客户端运行,因此客户端可以很清楚的取得脚本内容,就安全性而言不好;虽然这两种语言简单易学但是本身存在很多脚本漏洞 JSP中使用Java作为脚本语言 返回给客户端的是加载执行后的html,安全性能好,平台及服务器的弹性,ASP目前只能运行在Microsoft Windows平台上。并且搭配其web服务器IIS; JSP运行在大多数流行的平台、多种服务器上 包括Solaris操作环境,Microsoft Windows,Linux和其它UNIX平台上。 在多种Web服务器上,包括tomcat, websphere,Weblogic , IIS,等等。,开发环境方面,ASP或ASP.net开发环境是Visual Studio JSP有着众多的集成开发环境: Eclipse,JBuilder,WebSphere,62,JSP与PHP的比较,PHP(Hypertext Preprocessor):超级文本预处理语言的缩写。 可以混合使用PHP和HTML编写Web页面,当客户端访问某页面时,服务器端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到客户端的浏览器 PHP是一种能快速学习、跨平台、有良好数据库交互能力的开发语言。 PHP与Apache可以以静态编译的方式结合起来,而与其他的扩展库也可以用这种方式结合。充分利用了CPU和内存,同时极为有效地利用了Apache高性能的吞吐能力。 与数据库的接口以静态编译的方式结合起来,所以使用的是本地化的调用,让数据库发挥了最佳效能。 PHP具有良好的安全性。 由于PHP本身的代码开放,所以它的代码在许多工程师手中进行了测试,同时它与Apache编译在一起的方式也可以让它具有灵活的安全设定。,63,它相对于JSP还存在以下几个缺点: 1、没有统一的数据库操作接口。 由于PHP的所有扩展接口都是独立团队开发完成的,同时在开发时为了相应数据的个性化操作,因此针对每种数据库的开发语言和操作接口几乎完全不同。这就使得基于一种数据库的开发工作,在数据库进行升级后几乎需要对全部代码进行修改。而为了让应用支持更多种的数据库,就需要开发人员将同样的数据库操作使用不同的代码写出各种代码库来,让程序员的工作量大大增加。 2、缺少企业级的支持,只适合于中小型应用。 没有组件的支持,那么所有的扩充就只能依靠PHP开发组所给出的接口,事实上这样的接口还不够多,同时难以将集群、应用服务器这样的特性加入到系统中去。而一个大型的站点或是一个企业级的应用需要这样的支持。 (注意:在PHP的4.0版本以后加入了对 Serlet/Java Bean的支持,也许这样的支持会在以后的版本中更加加强,也许这样的支持会是PHP以后的企业级支持的起点。),PHP对数据库操作的接口繁多,移植起来麻烦。 虽然支持多种数据库,但针对每种数据库的操作代码不同 PHP缺少一层逻辑层。 JSP使用JavaBean ASP使用COM/DCOM PHP没有对应的组件 PHP没有相应公司支持。对它进行维护升级的只是一些网络爱好者。,JSP应用项目结构,浏览器端用户界面的开发: HTML,开发静态网页 JavaScript,简单的事件响应,输入验证。 CSS,浏览页面的美观 Applet

温馨提示

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

评论

0/150

提交评论