第一章背景知识简介•本书的重点内容是讲解JavaWeb开发的知识,在本章中,首先简单介绍了Java语言的历史和现状,然后对网站运行的基本知识进行了简单的介绍,在本章的最后,对比了各种动态开发语言之间,介绍了各种动态Web开发语言的优劣,通过本章知识的学习,读者可以掌握JavaWeb开发所需的基本知识。1.1Java语言简介•Java是一种跨平台的面向对象语言,Java语言的目标就是为了满足在复杂的网络环境中开发软件,在这种复杂的网络环境中,充满这各种各样的硬件平台和不同的软件环境,而Java语言就是针对这种复杂的平台环境设计,使用Java语言,可以开发出适应这种复杂网络环境的应用系统。1.1.1Java语言简介•Java是一种优秀的面向对象语言,在Java语言中,有着健壮的安全设计,它的结构是中立的,可以一直到不同的系统平台,优秀的多线程设计也是Java语言的一大特色,但是Java语言的最大优势还是在于其对多种操作系统平台的支持,这种特性是其他编程语言所无法比拟的。1.1.2Java语言的特性和优势•在目前的软件开发中,尤其是应用系统的开发中,Java语言成为大部分开发人员的选择,Java语言的特性:•(1)平台无关性•(2)安全性•(3)面向对象•(4)异常处理1.1.3Java语言的发展现状•Java语言并不是为网络环境设计的,用户可以使用Java语言来编写独立的桌面应用程序,在桌面应用程序这个领域,Java已经被各大厂商接受,例如Oracle数据库、Borland的JBuilder开发环境,Eclipse开发环境等工具都是使用Java语言编写的,这些软件产品的性能都是非常优秀的,可见使用Java同样可以编写出功能强大的应用软件。而且,如果用户需要开发跨平台运行的软件的时候,Java就成了唯一的选择,跨平台的需要也是各大厂商选择使用Java开发桌面应用程序的原因之一。1.1.4Java语言的发展前景•随着网络技术的急速发展,Java语言必然会取得更大的发展,在这个复杂的网络环境中,Java语言有着广阔的前景。例如在如下几种开发需求中,Java语言都有着很大的发展前景:1.2Web应用程序开发基本知识•JavaWeb开发也就是基于B/S结构的Java应用程序开发,在接下来的章节中,将介绍JavaWeb开发最基本的知识,在这里不涉及具体的技术实现,只对JavaWeb开发的基本原理进行介绍。1.2.1Web应用程序的运行原理•在传统的Web应用程序开发中,需要同时开发客户端和服务器端的程序,由服务器端的程序提供基本的服务,客户端是提供给用户的访问接口,用户可以通过客户端的软件访问服务器提供的服务,这种Web应用程序的开发模式就是传统的C/S开发模式,在这种模式中,由服务器端和客户端的共同配合来完成复杂的业务逻辑。例如以前的网络软件中,一般都会采用这种模式,而且现在的网络游戏中,一般还会采用这种Web开发模式,在这些Web应用程序中,都是需要用户安装客户端才可以使用的。1.2.2Web服务器汇总•在C/S架构的开发模式中,服务器端完全是有开发人员自己提供,开发人员自己制定客户端的访问规则,这时候的服务器就是不仅要提供逻辑功能的服务,还要提供一点的协议支持,通过这样的协议,客户端程序才可以与服务器端进行通信,从而享受服务器端提供的服务。在B/S架构的开发模式中,客户端就是简单的浏览器程序,可以通过HTTP协议访问服务器端的应用,在服务器端,与通信相关的处理都是由服务器软件负责,这些服务器软件都是有第三方的软件厂商提供,开发人员只需要把功能代码部署在Web服务器中,客户端就可以通过浏览器访问到这些功能代码,从而实现向客户提供的服务1.2.3开发一个Web应用程序的简单流程•在传统Web应用程序的开发过程中,开发一个应用系统一般情况下需要以下几个步骤:客户端/服务器端软件的开发、服务器端程序的部署、客户端软件的安装,只有完成这几个步骤,用户才可以通过客户端访问服务器提供的服务。•而在基于B/S架构的Web程序大开发过程中,只需要开发服务器端的功能代码,然后把服务器端的程序部署在Web服务器软件中即可,在部署结束之后,启动Web服务器,用户就可以通过浏览器访问Web应用程序提供的服务。1.3Web应用程序开发•由于技术的进步和网络环境的进化,Web应用程序开发的技术也在不断的进步,在Web应用程序开发的过程中,存在着不少争议,当然,这些争议都是开发人员对各种技术的看法不同造成的,在接下来的内容中,简单介绍这方面的内容,是读者对技术进化过程中的一些问题有所了解。1.3.1C/S与B/S之争•在前面的章节中已经介绍过,在Web应用程序的开发中,存在这两种开发模式,一种是传统的C/S架构,另一种是近些兴起的B/S架构。•由于硬件成本的降低,再加上应用系统复杂程度的提高,Web应用程序的开发逐渐转向到C/S架构,1.3.2动态页面语言对比•在互联网发展的最初阶段,所有的网页内容都是静态的HTML网页,在这种情况下,网站所能实现的任务仅仅是静态的信息展示,而不能与客户产生互动,当然这样的网站是不能满足用户不同的需要。在现实的生活中,用户的需要总是各种各样的,这就需要网站或者是Web应用程序具有收集并处理响应用户需要的功能,而静态的HTML是不能满足这种需要的,为了满足这种特殊的需要,就有了后来一系列的动态页面语言的出现。1.3.3.NET与J2EE之争•自从.NET和J2EE推出以来,对J2EE和.NET的比较已经不是一天两天的事了,钟情于Windows的用户会选择.NET,而选择Unix\Linux的用户会更钟情于J2EE,其实这两种技术都有各自的优势和不足(具体内容请参照书。)1.4小结•在本章内容中,对JavaWeb开发中的一些基本知识进行简单的介绍,读者通过本章的学习可以了解开发JavaWeb应用程序的一些基本的概念,而且对于JavaWeb开发中的一些存在争议的问题也有所了解,尤其是一些有争议的问题,读者可以稍加注意,在初学者中,很容易犯这些错误,例如会过多关注具体技术的优劣,期望学到一种最有用的技术,这些想法都是不可取的。技术没有高低分,只有应用场合的不同。所以不要花费太多的精力来考虑这种没有意义的问题。