1、高级网站 开发技术,老师:邓江沙 电话:18975186525 :3606079282,教 材,JSP程序设计技术教程 主编:甘勇 清华大学出版社,目 录,第 1 章 WEB技术简介 第 2 章 JSP开发运行环境 第 3 章 脚本语言 第 4 章 基于脚本语言的项目实训 第 5 章 JSP基础知识 第 6 章 JSP的内置对象 第 7 章 JSP中数据库操作 第 8 章 个人信息管理系统实训 第 9 章 JSP与JavaBean编程 第10章 JSP与Servlet编程,第1章 Web技术简介,第1章 Web技术简介 1.1 Web基础知识 1.1.1 Web技术的由来与发展 1.1.2 W
2、eb动态网页技术 1.1.3 Web应用程序的工作原理1.1.4 Java Web编程的主要组件技术 1.2 JSP技术 1.2.1 JSP特点与优势 1.2.2 JSP的工作原理,1.3 JSP开发Web的方式与体系结构 1.3.1 JSP开发Web站点的主要方式 1.3.2 JSP两种体系结构 1.4 MVC设计模式 1.4.1 MVC设计模式思想 1.4.2 MVC优缺点,第1章 Web技术简介,第2章 JSP开发运行环境,2.1 JSP环境介绍 2.2 JDK安装配置 2.2.1 JDK简介与下载 2.2.2 JDK安装与配置 2.3 Netbeans开发环境 2.3.1 NetBea
3、ns简介与下载 2.3.2 NetBeans安装与使用,2.4 Eclipse开发环境 2.4.1 Eclipse 简介与下载 2.4.2 Eclipse的使用 2.5 MyEclipse开发环境 2.5.1 MyEclipse简介与下载 2.5.2 MyEclipse安装与使用 2.6 Tomcat服务器 2.6.1 Tomcat简介与下载 2.6.2 Tomcat安装与配置,第2章 JSP开发运行环境,第3章 脚本语言,3.1 HTML 3.1.1 HTML简介 3.1.2 HTML基本标签 3.1.3 列表 3.1.4 多媒体和超链接 3.1.5 表格 3.1.6 框架 3.1.7 表单
4、,3.2 CSS 3.2.1 CSS简介 3.2.2 CSS样式表定义 3.2.3 在HTML中加入CSS的方法 3.2.4 CSS样式表继承性 3.2.5 CSS基本属性 3.3 JavaScript脚本语言 3.3.1 JavaScript简介 3.3.2 语言基础知识 3.3.3 JavaScript对象 3.3.4 JavaScript事件,第3章 脚本语言,第4章 基于脚本语言的项目实训,4.1 项目需求说明 4.2 项目总体结构与构成 4.3 项目页面开发 4.3.1 登录页面 4.3.2 项目的框架页面 4.3.3 用户管理模块页面,第5章 JSP基础知识,5.1 JSP的基本页
5、面结构 5.2 JSP中的脚本元素 5.2.1 变量、方法的声明 5.2.2 表达式 5.2.3 脚本 5.3 JSP中的注释 5.3.1 隐藏注释 5.3.2 HTML注释 5.3.3 Java注释,5.4 JSP的指令 5.4.1 page指令 5.4.2 include指令 5.4.3 taglib指令 5.5 JSP中的常用动作 5.5.1 动作 5.5.2 动作 5.5.3 动作 5.5.4 动作 5.5.5 动作 5.5.6 动作 5.5.7 动作,第5章 JSP基础知识,第6章 JSP的内置对象,6.1 out对象 6.1.1 out对象的方法 6.1.2 out对象实例 6.2
6、 page对象 6.2.1 page对象的方法 6.2.2 page对象实例 6.3 request对象 6.3.1 request对象的方法 6.3.2 request对象实例 6.4 response对象 6.4 .1 response对象的方法 6.4 .2 response对象实例,6.5 session对象 6.5.1 session对象的方法 6.5.2 session对象实例 6.6 pageContext对象 6.6.1 pageContext对象的方法 6.6.2 PageContext对象实例 6.7 config对象 6.7.1 config对象的方法 6.7.2 con
7、fig对象实例,第6章 JSP的内置对象,6.8 exception对象 6.8.1 exception对象的方法 6.8.2 exception对象实例 6.9 application对象 6.9.1 application对象的方法 6.9.2 application对象实例,第6章 JSP的内置对象,第7章 JSP中数据库操作,7.1 JDBC介绍 7.1.1 什么是JDBC 7.1.2 JDBC的结构 7.2 通过JDBC-ODBC桥访问数据库 7.2.1 通过桥访问Access 7.2.2 通过桥访问Excel 7.3 通过JDBC驱动访问数据库 7.3.1 通过JDBC驱动使用My
8、SQL数据库 7.3.2 通过JDBC驱动使用Microsoft SQL Server 数据库 7.3.3 通过JDBC驱动使用oracle数据库,7.4 查询数据库 7.5 更新数据库 7.5.1 更新的SQL语句 7.5.2 JSP更新数据库 7.6 JSP在数据库应用中的相关问题 7.6.1 JSP的分页浏览 7.6.2 汉字处理 7.7 JSP中数据库应用实例 7.7.1 学生信息系统主页面设计 7.7.2 学生信息查询 7.7.3 学生信息添加 7.7.4 学生信息删除 7.7.4 学生信息修改,第7章 JSP中数据库操作,第8章 个人信息管理系统实训,8.1 项目需求说明 8.2
9、项目系统分析 8.3 系统设计与实现 8.3.1 数据库设计 8.3.2 项目代码实现 8.3.2.1 登录功能实现 8.3.2.2 主界面功能实现 8.3.2.3 个人信息管理功能实现 8.3.2.4 通讯录管理功能实现 8.3.2.5 日程安排管理功能实现,第9章 JSP与JavaBean编程,9.1 JavaBean概述 9.2 JavaBean的基本用法9.2.1 JavaBean的属性 9.2.2 访问Bean属性 9.2.3 设置Bean属性 9.3 Bean的作用域 9.4 JavaBean的使用 9.4.1 使用JavaBean访问数据库 9.4.2 JavaBean应用实例,
10、第10章 JSP与Servlet编程,10.1 Servlet介绍 10.1.1 什么是Servlet 10.1.2 Servlet的技术特点 10.1.3 Servlet与JSP的区别 10.1.4 Servlet在Web项目中的作用 10.1.5 Servlet生命周期 10.1.6 开发一个简单的Servlet 10.2 处理客户端请求 10.2.1 从Servlet读取表单数据 10.2.2 从Servlet提取报文头 10.2.3 处理Cookie与会话跟踪,10.3 Servlet编程接口 10.3.1 与Servlet实现相关的接口 10.3.2 与Servlet配置相关的接口
11、10.3.3 与Servlet异常相关的接口 10.3.4 与请求和响应相关的接口 10.3.5 会话管理 10.3.6 Servlet上下文相关 10.4 Servlet部署 10.5 Servlet应用实例,第10章 JSP与Servlet编程,第1章 Web技术简介,第1章 Web技术简介,1.1 Web基础知识 1.2 JSP技术 1.3 JSP开发Web的方式与体系结构 1.4 MVC设计模式,1.1 Web基础知识,1.1.1 Web技术的由来与发展 1.1.2 Web动态网页技术 1.1.3 Web应用程序的工作原理 1.1.4 Java Web编程的主要组件技术,1.1.1 W
12、eb技术的由来与发展,Web的全称是World Wide Web,简称WWW,也叫3W ,中文译名为万维网或全球信息网。 Web提供一个图形化的界面,用以浏览网上资源。它是一个在Internet上运行的全球性、分布式信息发布系统。该系统通过Internet向用户提供基于超媒体的数据信息服务。 Web是Internet提供的一种服务,是基于Internet、采用Internet协议的一种体系结构。 Web技术是Internet的核心技术之一,它的主要功能是信息发布和信息处理,这也是网上信息系统的一荐重要功能。,Web的特点,(1)Web是一种超文本信息系统。 (2)Web是图形化的和易于导航的。
13、 (3)Web与平台无关。 (4)Web是分布式的。 (5)Web是动态的、交互的。 (6)Web具有新闻性。,1.2 Web的工作原理,浏览器/服务器(Browser/Server,B/S)体系结构客户端浏览器Web服务器数据库服务器 HTTP (HyperText Transfer Protocol)协议实现浏览器和Web服务器的信息交换,1.1.1 Web技术的由来与发展,1980年,Tim Berners-Lee负责的Enquire(Enquire Within Upon Everything的简称)项目是Web项目的起源。 1989年,Tim Berners-Lee 发明的分布式应用
14、架构,向人们提供信息和信息服务。1990年,第一个Web服务器开始运行。1991年,CERN(European Particle Physics Laboratory)正式发布了Web技术标准。,早期的Web应用主要是使用HTML语言编写、运行在服务器端的的静态页面。 HTML(HyperText Markup Language,超文本标记语言)是一种描述文档结构的语言,不能描述实际的表现形式。 1998年W3C颁布HTML 4.0。1999年推出HTML4.01。 HTML 5 的第一份正式草案已于2008年1月22日公布。,Web标准,浏览器请求静态页面图,HTML,HTML(Hypert
15、ext Markup Language,超文本标记语言)是一种描述文档结构的语言,不能描述实际的表现形式。 1945年,Vannevar Bush提出了文本和文本之间通过超级链接相互关联的思想,并给出设计方案。 1960年后正式将这种信息关联技术命名为超文本(Hypertext)技术。 1991年HTML语言正式诞生以来推出了多个不同的版本,其中对Web技术发展具有重大影响的主要是两个版本: 1996年推出的HTML3.2;1998年推出的HTML4.0。 1999年W3C颁布了HTML 4.01。,为了满足人们对信息丰富性和多样性的强烈需求。促使Web技术由静态技术向动态技术的转化。 第一种
16、使服务器能根据运行时的具体情况,动态生成HTML页面的技术是CGI(Common Gateway Interface,公共网关接口)技术。 1993年,CGI 1.0的标准草案由NCSA(National Center for Supercomputing Applications)提出,1995年,NCSA开始制定CGI 1.1标准。 CGI技术允许服务端的应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务端的动态信息交换成为了可能。,用户访问CGI程序,1994年,Rasmus Lerdorf发明了专用于Web服务端编程的PHP(Personal Home Page Tool
17、s)语言。 1996年,Microsoft借鉴PHP的思想,推出ASP技术。借助Microsoft Visual Studio等开发工具在市场上的成功,ASP迅速成为了Windows系统下Web服务端的主流开发技术。 1997年,SUN公司推出了Servlet技术,作为Java阵营的CGI解决方案。 1998年,SUN公司又推出了JSP技术,允许在HTML页面中嵌入Java脚本代码,从而实现动态网页功能。,2000年以后,整合Web开发技术形成完整的开发框架或应用模型,来满足各种复杂的应用需求。 Web技术出现了几种技术整合方式:MVC(Model-View-Controller)设计模式、门
18、户服务(Portal Server)和Web内容管理(Web Content Management),1.1 Web基础知识,1.1.1 Web技术的由来与发展 1.1.2 Web动态网页技术 1.1.3 Web应用程序的工作原理 1.1.4 Java Web编程的主要组件技术,1.1.2 Web动态网页技术,动态网页技术是运行在服务器端的Web应用,程序根据用户的请求在服务器端进行动态处理后,把处理的结果以HTML文件格式返回给客户端。 当前主流的三大动态Web开发技术是:PHP ASP/ASP.NETJSP,PHP,PHP(PHP:Hypertext Preprocessor,超级文本预处
19、理语言)是一个基于服务端来创建动态网站的脚本语言,可以用PHP和HTML生成网站主页。 当一个访问者打开主页时,服务端便执行PHP的命令并将执行结果发送至访问者的浏览器中,这类似于ASP和JSP,然而PHP和它们不同之处在于PHP开放源码和跨越平台,PHP可以运行在WINDOWS 和多种版本的UNIX上。 PHP消耗的资源较少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。,1994年Rasmus Lerdorf创建了PHP。 1995年初Personal Home Page Tools (PHP Tools)发布了PHP1.
20、0 1995年中,PHP2.0发布1997年发布PHP3 2000年,发布PHP4.0 2009年发布PHP5.3版本,其中增加了许多新的特性。,ASP/ASP.NET,ASP(Active Server Pages,活动服务器页面)是一种允许用户将HTML或XML标记与VBScript代码或者JavaScript代码相结合生成动态页面的技术,用来创建服务器端功能强大的Internet应用程序。 当一个页面被访问时,VBScript/JavaScript代码首先被服务器处理,然后将处理后得到的HTML代码发送给浏览器。 ASP只能建立在Windows的IIS Web服务器上。,1996年,Mi
21、crosoft公司推出ASP 1.0 1998年,Microsoft公司推出ASP 2.0 1999年,Microsoft公司推出ASP 3.0 2001年,推出ASP.NET。,ASP.NET技术又称为ASP+,是在ASP基础上发展起来的,其不仅仅只是一个有新界面并且修复了一些缺陷的ASP3.0升级版本,更为重要的是其是在保留ASP的最大优点并全力使其扩大化的基础上开发出来的。 它是Microsoft公司推出的新一代Web开发工具,是.NET战略中的重要一员,它全新的技术架构使编程变得更加简单,是创建动态网站和Web应用的最好技术之一。,ASP.NET,JSP,JSP(Java Server
22、 Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术类似于ASP/ASP.NET技术,它是在HTML中插入Java代码段和JSP标记,从而形成JSP文件。 Web服务器接收访问JSP网页的请求时,首先将JSP转化为Servlet文件,Servlet文件经过编译后处理用户请求,然后将执行结果以HTML格式返回给客户。,JSP,SUN公司JSP1998年推出JSP0.9版本 1999年推出1.1版本 2000年推出1.2版本 现在流行的是JSP2.0版本。,1.1 Web基础知识,1.1.1 Web技术的由来与发展 1.1.2 Web
23、动态网页技术 1.1.3 Web应用程序的工作原理 1.1.4 Java Web编程的主要组件技术,1.1.3 Web应用程序的工作原理,JSP页面是运行在服务器端的一种Web应用程序。 目前在Internet上信息大多以网页形式存储在服务器上,通过浏览器获取网页内容,这是一种典型的B/S(浏览器/服务器)模式。 B/S模式的工作过程是: 客户端请求-服务器处理-对客户端响应。 其实现的原理下图所示。,图1-3 B/S模式的工作原理,1.1 Web基础知识,1.1.1 Web技术的由来与发展 1.1.2 Web动态网页技术 1.1.3 Web应用程序的工作原理 1.1.4 Java Web编程
24、的主要组件技术,1.1.4 Java Web编程的主要组件技术,Java Web应用程序通常是由多种组件构成的:表示层组件、控制层组件和业务逻辑层组件及数据访问层组件组成。 表示层组件通常由HTML 和JSP 页面构建. 控制层组件一般是Servlet。 业务逻辑层组件是JavaBeans 或EJB。 数据访问层组件是JDBC,Hibernate 或CMP。,Java Web 应用程序各个组件在配置文件中进行声明,而后打包部署到服务器上运行。 下面将分别介绍JavaBean、Servlet、JDBC、JavaEE、EJB等主要Java Web组件技术。,JavaBean,JavaBean是Ja
25、va的可重用组件,是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象。 JavaBean开发起来简单,许多动态页面处理过程实际上被封装到了JavaBean当中,可以将大部分功能放在JavaBean中完成。 JavaBean在JSP中用来捕获页面表单的输入并封装事务逻辑,从而很好地实现业务逻辑和前台程序的分离,使得系统更加健壮和灵活。,JavaBean定义应遵循的规范:必须有一个无参的构造函数。 对在Bean中定义的所有属性提供getter和setter方法,并且这些方法是公共的。 对于boolean类型的属性,其getter方法的形式为isXXX的,其中XXX为首字母大
26、写的属性名。 对于数组类型的属性,要提供形式为getXXX(int index)和setXXX(int index,PropertyType value)的方法。JavaBeans 具有以下特性: 可以实现代码的重复使用。 容易维护、容易使用且容易编写。 可以在支持Java 的任何平台上工作,而不需要重新编译。 可以以其它部件的模式进行工作。,JavaBean 实例:public class Login private String username; private String password; public Login()public String getUserName() retu
27、rn this.username;public void setUserName(String param) this.username = param; public String getPassword() return this.password;public void setPassword(String param) this.password = param; ,Servlet,Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。 Servlet在Java的Web服务器上或应用服务器上运行并扩展该服务器的能力。 Servlet的主要功
28、能在于可以事先交互式地浏览和修改数据,生成动态Web内容。 在Java Web应用程序中, JSP页面首先被编译成Servlet文件,然后运行,Servlet处理用户的请求并做出反应;其次,在Java Web应用程序中可以将Servlet作为控制器来使用。,JDBC,JDBC(Java Data Base Connectivity, Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 JDBC提供的标准API几乎是独立于数据库的,但同时又可以在必要时访问数据库的某些特性。,JDBC 包括了两个软件包: j
29、ava.sql 和javax.sql。 java.sql:这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句,以及准备语句和运行批处理查询等。同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。 javax.sql:它主要为数据库方面的高级操作提供接口和类,例如为连接管理、分布式事务和旧有的连接提供了更好的抽象。它引入了容器管理的连接池和分布式事务等。 JDBC 的用途是与数据库建立连接、发送 SQL 语句并处理结果。,JDBC,JDBC API 的核心组件有:DriverManager类:用于跟踪可用的JDBC 驱动程序并生成数据库连接。 Connection
30、接口:用于取得数据库信息、生成数据库语句,并管理数据库事务。 Statement接口:用于在基层连接上运行SQL 语句,并且生成一个结果集。 ResultSet接口:用于访问SQL 查询返回的数据。当读取结果时,可以使用它的next( )方法依次定位每一行数据,然后用相应的get()方法读取数据。 JDBC通过数据库的JDBC驱动程序来访问数据库。,通过JDBC驱动程序访问数据库,通常Java开发工具带有JDBC-ODBC桥,只要可以通过ODBC驱动程序访问数据库,也可以使用JDBC访问数据库。,JDBC-ODBC桥,J2EE,J2EE(Java2 Platform Enterprise Ed
31、ition)平台规范是SUN公司定义的用于简化分布式企业级应用开发与部署的基于组件的模式。 为了降低成本,加快企业应用程序的设计和开发,J2EE 平台提供了一个基于组件的方法来设计、开发、装配及部署企业应用程序,并提供了多层的分布式的应用模型、组件重用、一致化的安全模型以及灵活的事务控制。 程序员可以更快的速度向市场推出创造性的客户解决方案,并且独立的、基于组件的J2EE解决方案不会被任何一个厂商的产品和API所束缚。,J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持。 1998年,Sun发布了EJB 1.0标准。至此
32、,J2EE平台的三大核心技术Servlet、JSP和EJB都已先后问世。 1999年,Sun正式发布了J2EE的第一个版本。紧接着,遵循J2EE标准,为企业级应用提供支撑平台的各类应用服务软件出来了。IBM的WebSphere、BEA的WebLogic都是这一领域里最为成功的商业软件平台。 2003年,Sun的J2EE版本已经升级到了1.4版,其中三个关键组件的版本也演进到了Servlet 2.4、JSP 2.0和EJB 2.1。 2004年发布J2EE1.5版本。现在是Java EE 6版本。,J2EE,J2EE分为4个层: 客户层(Client Tier):应用层运行在客户端机器上。 We
33、b层(Web Tier):Web层运行在Web服务器上。 业务层(Business Tier):业务层运行在EJB服务器上。 企业信息系统层(EIST):信息系统层运行在EIS服务器上,该层运行企业信息系统软件。 业务层和Web层一起构建成为J2EE的中间层,而其他两层是客户层和信息系统层,通常称J2EE为三层体系结构。,J2EE,EJB,EJB是J2EE体系中的组件,是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。 使用EJB,就能像搭积木一样开发EJB组件,然后可以把这些EJB组件组装或重新组件到不同的应用中去。 采用EJB可以使得开发商业应用系统变
34、得容易,随着需求的改变,应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。,第1章 Web技术简介,1.1 Web基础知识 1.2 JSP技术 1.3 JSP开发Web的方式与体系结构 1.4 MVC设计模式,1.2 JSP技术,1.2.1 JSP特点与优势 1.2.2 JSP的工作原理,1.2.1 JSP特点与优势,JSP是Sun公司推出解决Web开发技术的解决方案,自JSP推出后,得到众多大公司的支持,所以JSP迅速成为商业应用的服务器端语言。 JSP(Java Server Pages)是由Sun公司倡导、许多公司共同参与建立的一种基于Java 语言的动态Web应用开发技术,利
35、用这一技术可以建立安全、跨平台的先进动态网页。 JSP是J2EE系统中Web层技术,负责动态生成用户界面。 JSP页面在执行时是编译式,编译成Servlet文件。,JSP的技术特点和优势主要体现在:一次编写、到处运行 系统的多台平支持 内容和显示分离 生成可重用的组件 采用标签简化页面 健壮的存储管理和安全性,1.2 JSP技术,1.2.1 JSP特点与优势 1.2.2 JSP的工作原理,1.2.2 JSP的工作原理,JSP所有的程序都是在服务器端运行的,服务器端收到用户通过浏览器提交的请求,经过一定处理后再以HTML的形式返回给客户端,客户端得到的只是在浏览器中看到的静态网页。 服务器上的J
36、SP程序负责处理客户端的请求,其程序代码对于客户端来说是不可见的。,JSP和客户端的交互是通过HTTP协议实现的,这个过程主要分为以下4个步骤: 客户端和服务器建立连接 客户端发送请求 服务器发出响应 关闭连接,当第一次运行JSP页面时,JSP引擎要完成以下操作:将JSP文件翻译成Servlet文件,是Java应用程序。 JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件。 JSP引擎调用Java虚拟机解释执行class文件,并将运行结果返回给服务器。 服务器将运行结果以HTML形式作为响应返回给客户端浏览器。 由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几
37、个步骤,所以客户端得到响应所需要的时间比较长。当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。,JSP的运行原理,第1章 JSP概述,1.1 Web基础知识 1.2 JSP技术 1.3 JSP开发Web的方式与体系结构 1.4 MVC设计模式,1.3 JSP开发Web的方式与体系结构,1.3.1 JSP开发Web站点的主要方式 1.3.2 JSP两种体系结构,JSP开发Web站点主要有以下几种方式: 直接使用JSP 对于最小型的Web站点,可以直接使用JSP来构建动态网页,这种站点最为简单
38、,所需的仅仅是简单的留言板、动态日期、简单的应用等基本功能。对于这种开发模式,一般可以将所有的动态处理部分都放置在JSP文件中。 JSP+ JavaBean 中型站点面对的是数据库查询,用户管理和小量的商业业务逻辑。对于这种站点,不能将所有的数据全部交给JSP页面来处理。在单纯的JSP中加入JavaBean技术将有助于这中中型站点的开发。利用JavaBean,将很容易对诸如数据库连接、用户登录与注销、商业业务逻辑等进行封装。通过封装,还可以防止一般开发人员直接获得数据库的控制权。,JSP开发Web站点主要有以下几种方式: JSP+ JavaBean+Servlet 在逻辑关系比较复杂的网站中,
39、可借助于Servlet和JSP良好的交互关系和JavaBean的协助,完全可以将网站的整个逻辑结构放在Servlet中,而将动态页面的输出放在JSP页面中来完成。在这种开发方式中,一个网站可以有一个或几个核心的Servlet来处理网站的逻辑,通过调用JSP页面来完成客户端请求。,JSP开发Web站点主要有以下几种方式: J2EE开发模型 在J2EE开发模型中,整个系统可以分为3个主要的部分:视图、控制器和模型。 视图就是用户界面部分,主要处理用户看到的界面。 控制器负责网站的整个逻辑,用于管理用户与视图发生的交互。 模型是应用业务逻辑部分,主要由EJB负责完成,借助于EJB强大的组件技术和企业
40、级的管理控制,开发人员可以轻松地创建出可重用的业务逻辑模块。,JSP开发Web站点主要有以下几种方式: SSH开发框架 SSH(Struts、Spring、Hibernate)开发框架是目前软件公司乃至的三个主流的开源框架,许多软件公司在使用SSH进行项目的开发,也是目前最流行的开发模式。,1.3 JSP开发Web的方式与体系结构,1.3.1 JSP开发Web站点的主要方式 1.3.2 JSP两种体系结构,JSP Model 1,在Model 1体系中,如图1-6所示,JSP页面独自响应请求并将处理结果返回客户。 Model1体系十分适合简单应用的需要,它却不能满足复杂的大型应用程序的实现。不
41、加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码,特别是当需要处理的请求量很大时,情况更为严重。尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。 从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。,Model 1模型结构图,Model 2,Model 2体系结构是一种把JSP与servlet联合使用来实现动态内容服务的方法。 它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让servlet完成深层次的处理任务。在这里,servlet充当控制者的角色,负责管理对请求
42、的处理,创建JSP页需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页传给请求者。 在JSP页内没有处理逻辑;它仅负责检索原先由servlet创建的对象或Bean,从servlet中提取动态内容插入静态模板。分离了表示和内容,明确了角色的定义以及开发者与网页设计者的分工。 项目越复杂,使用Model 2体系结构的优势就越突出。,Model 2模型结构图,第1章 Web技术简介,1.1 Web基础知识 1.2 JSP技术 1.3 JSP开发Web的方式与体系结构 1.4 MVC设计模式,1.4 MVC设计模式,1.4.1 MVC设计模式思想 1.4.2 MVC优缺点,1.4.1 MV
43、C设计模式思想,MVC是一种目前广泛流行的软件设计模式,早在70年代,IBM就推出了Sanfronscisico项目计划,其实就是MVC设计模式的研究。 随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论选择哪种语言,无论应用多复杂,它都能为理解分析应用模型提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提供规范的依据。,MVC 设计模式是目前用得比较多的一种设计模式,被广泛应用于Java Web 应用程序中。 Model(模型)表示业务逻辑层。 View(视图)代表表示层。 Controller(控制器)代表控制层。,Model(模型)表示
44、业务逻辑层。Model部分包括业务逻辑层和数据库访问层。 在Java Web应用程序中,业务逻辑层一般由JavaBean或EJB构建。Model部分就是业务流程或状态的处理以及业务规则的制定。 业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。 业务模型的设计可以说是MVC最主要的组件。 MVC并没有提供模型的设计方法,而只是提供给用户管理这些模型,以便于模型的重构和提高重用性。,View(视图)代表表示层。 在Java Web应用程序中,View部分一般用JSP和HTML构建,也可以是XHTML、XML、Applet和JavaScript。 客户在Vie
45、w部分提交请求,在业务逻辑层处理后,把处理结果又返回给View部分显示出来。因此,View部分也是Java Web应用程序的用户界面。 一个Web项目可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理以及响应用户的请求,而不包括在视图上的业务流程的处理。,Controller(控制器)代表控制层。 Controller部分由Servlet组成。 当用户请求从View部分传过来时,Controller把该语法发给适当的业务逻辑组件处理;请求处理完成后,又返回给Controller。Controller再把处理结果转发给适当的View组件显示或者调用Model。因此,C
46、ontroller在视图层与业务逻辑层之间起到了桥梁作用,控制了两者之间的数据流向。,MVC模式图,1.4 MVC设计模式,1.4.1 MVC设计模式思想 1.4.2 MVC优缺点,1.4.2 MVC优缺点,MVC模式从推出以来被广大软件开发人员使用,现在推出了许多基于MVC模式的Web框架技术。 但是MVC模式也有一定不足之处。,MVC模式的优点,(1)一个模型可用于多个视图中。在目前用户需求的快速变化下,可能有多种方式访问应用程序的需求。例如,订单模型可能有本系统的订单,也有网上订单,或者其它系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以
47、及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 (2)模型部分能够扩展用在接口上。由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。,(3)易于应用程序的可维护性。由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 (4)便于权限的控制。控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 (5)有利于程序的规范化管理。它还有利于软件工程化管理。由于不同的层各司其职,每一
48、层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码,MVC模式的优点,MVC的不足,(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 (2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离但又联系紧密的部件,没有控制器的存在,视图的应用是很有限的,反之亦然,这样就妨碍了它们的独立重用。 (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 (4)目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。,请复习第1章内容! 预习后面的章节!,习题 教材P17 1.6.11.6.3,