您的位置:首页 > 编程语言 > Java开发

WEB 开发与Java框架及设计模式

2010-08-01 15:56 405 查看
大家好,本节课堂讨论的是 WEB和Java应用开发

这节课分三个小节,分别是WEB原理,JAVAEE框架,设计模式

首先我们要明白Web的概念,以及原理是什么。

大家,对于web并不陌生,我们平时上网浏览的

新浪,网易就是一个Web站点,他们都是靠提供信息内容产生价值.

WEB的诞生可以追述到三十年前的老外的一个信息分布式共享的项目,

这里就不对其历史做过多的回述,感兴趣的同还可以自己去了解.

从技术层面来看,WEB 是一个典型的分布式的架构,

用户可以在任何地点,通过任何电子设备,PC机,PDA,手机,游戏机

便捷的访问到WEB服务器,这都得意于其三大基础技术:

统一资源定位符:

域名DNS系统:

超文本传输协议 HTTP:

当人们在浏览器键入方便易记的统一资源定位符,

浏览器就开始辛劳的工作了,

首先,浏览器将域名(统一资源定位符标明地址部分)发送给DNS系统进行解析,

获取到目的IP的时候,再通过HTTP协议发送请求报文,

WEB服务器收到浏览器请求,采用同样的HTTP协议返回HTML,CSS,图片等信息,

接下来,浏览器便把信息显示供用户阅读。

从此交互图,可以看出WEB应用中每次信息的交换,都涉及到客户机和服务器

两个层面,因此WEB开发技术,大体上也可以分为客户端技术和服务器端技术。

客户端技术是个广义的概念,表示是和服务器进行信息交换和展现的技术,

信息交换技术,也就是规定如何通信,如何传输数据,数据组织的格式

展现技术,就是表示告知浏览器应该如何将获取到的信息显示出来。

客户端展现技术又分为三个层面:

结构层,规定信息如何组织(HTML)

表现层,信息应该如何展现(CSS)

行为层,能够对结构和表现层进行行为控制(JavaScript)

如果对设计模式有所了解的,可以看出它和MVC模式非常类似。

下面我们来欣赏下几张图片,以对Web页面能够有个感性的认识,

图中的文字,便是HTML组织部分,它规定了哪部分是标题,哪部分是正文主体

而具体这些文字显示的位置,展现的形式,是在整个页面的左边啊,还是右边啊,

或者采用什么的颜色,则是CSS定义的,要是你点击图片,能看到一些动态的效果,

那就是JavaScript的功劳了。

JavaScript不仅能实现各种特效效果,比如弹出菜单,滚动条,还能实现非常强悍实用

的功能。google地图前端技术正是采用这样一种技术。

当然,作为前端技术,不仅有上面三种标准化技术(HTML,CSS,JavaScript),各商业公司

为进步增加用体验,提出了各自的富客户端技术,如Flash,SilverLight,JavaFx等。

了解完前端客户技术,我们再来看看WEB服务器是如何运作的以及后台的相关技术。

什么是WEB服务器呢?简单的说,就是采用HTTP协议,提供内容信息的机器。

如使用最广泛的Apache ,微软出品的IIS, 号称性能最快的nginx等

那什么是WEB服务器端技术,程序生成客户端可以浏览的数据,如下图所示:

WEB服务器端技术,也就是指图中的JSP这块技术。

主流的后台技术,有JAVAEE,ASP.NET,PHP,ROR。

简要说下PHP,PHP是草根技术的代表,但由于其简单免费部署容易的特点,占据了互联网的大部分领域。

通常采用LAMP进行组合开发部署。

ASP.NET 是技术寡头微软的产品,优点开发工具强大,类库支持完善,缺点平台单一,成本高

现在来讲解专为企业开发而生的JavaEE技术,竟然为企业为生,那么其复杂度就不一般,

涉及的技术繁多,完全从头开发,将会耗费大量的开发周期,于是诞生了一堆框架,

如MVC框架,组件框架,持久层框架等。

业界主流的敏捷框架是SSH,分别对应于表现层、行为层、数据层

那么究竟什么是框架,为什么要使用这些框架,见定义:

简单说,框架就是一组组件,某种应用的半成品,一个平台,你利用别人的平台进行开发。

为什么需要框架?

如今的开发已经非常复杂了,特别是服务器端软件,涉及到的知识、内容、问题太多了,

使用成熟的框架,可以极大的缩短开发周期,减少在基础工作的投入。主流的框架一般都

是业界大牛级人物所开发,具有较强的稳定性、健壮性、可扩展性,并且对细节处理也做得

比较完善。

现在就简单介绍下Java开发过程中经常听到几个框架:

Spring是一企业轻量级应用框架,通过IOC和AOP原理弱化模块的耦合度,降低系统的复杂性。

主要包括了以下几大模块,

core Spring内核模块,Spring容器的基础,基本质是工厂模式的应用,简言之,就是能够

产生各种对象的工厂。

aop 切面编程组件,面向对象的编程OOP是对问题领域中以及业务过程中存在的实体及其属性

和操作进行抽象和封装,采用纵向方法,划分业务逻辑单元。而AOP则是关注涉及到各个组件

模块的横切面业务逻辑。听起来可能不容易理解,需要在编程开发过程中慢慢体会。

orm 对象关系映射数据库支持组件,用于方便集成第三方ORM框架,hibernate,ibats,ORM就是把对象映射到关系数据库,

mvc spring提供了一套不错的MVC框架,不过由于历史原因,开发都更多的是用structs进行MVC开发

dao 数据库访问组件,封装了JDBC便于采用对象化的方式操作数据库

Spring的强大不仅在于可以随意组合自身的组件,还允许方便的集成第三方框架。

大部分应用开发,都需要和数据库打交道。传统的开发,需要自己操作JDBC,管理连接池,处理

事物异常,通过sql语句查询数据库,适用于简单的应用开发...

Hibernate对JDBC进行了轻量级封装,使开发人员可以使用面向对象的思维方式来

操作数据库,并帮助开发人员,管理连接池,提交事务,处理异常,完成持久化重任。

一个成熟的软件,离不开测试,有的编程思想提倡通过测试来驱动业务类开发。

在Java中,常用的测试框架是Junit。

这些优秀的框架,给我们带来了极大的好处,降低了企业开发的难度,缩短的开发周期,提升了

软件产品的质量。然而我们不禁要问,这些能够解决通用问题的框架是如何设计出来的,

其核心原理又是什么?

当然,真要回答起来,不是三两句话能说清楚的,这里只能把方向告知大家一下。

设计模式,简单理解就是解决一类问题的方法论,正确的使用这些方法论,可以达到事半公倍的效果。

设计模式的根基是设计原则,

如GRASP原则,其核心思想是职责分配,可分为以下九个原则,可以

用一句话来概况:自己只干自己能干的事

要理解这话不难,不过要将融会贯通的运用在日常开发,着实需要下一番功夫

个人觉得SOLID原则更容易把握,揭开Spring框架源码,会发现系统中大量的遵循这些原则。

单一责任原则,也就是专家模式,一个类、模块只做一件事情。

开闭原则,对扩展开发,对修改关闭,

依赖倒置原则

接口分离原则,就是不要强迫用户去依赖于他们不使用的接口,接口方法不要太多,

这些设计开发原则,不容易快速理解,需要大家在后面的编程中慢慢体会。

设计模式相对于设计原则来说,则方便理解多了,大家只要依葫芦画瓢就能将

其应用至日常的开发中,解决碰到的一些通用性问题.关于设计模式,大家上网搜索

下GOF就可以找到许多教材.

万物讲究阴阳平衡,都在某个程度上保持者平衡,设计模式也是一样,

当你把设计模式看成解决设计开发过程中的灵丹妙药的时候,

这时候,就需要购买一本称之为"反模式"的书籍CC

本课的内容就到此为些,后续感兴趣,可以私下讨论,对于考试大家只要把PPT中

有关WEB的架构原理,常见的WEB开发技术,主流的JAVAEE框架及设计原则,设计模式记记就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: