课程介绍-WEB编程思想与环境配置_第1页
课程介绍-WEB编程思想与环境配置_第2页
课程介绍-WEB编程思想与环境配置_第3页
课程介绍-WEB编程思想与环境配置_第4页
课程介绍-WEB编程思想与环境配置_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、WebWeb编程基础与环境配置编程基础与环境配置 一,互联网与WEB技术及其发展历史。 二,软件编程的B/S与C/S体系结构。 三,常用WEB应用开发环境介绍 。 四,JSP开发环境的构建 五,一个简单的Java程序 六,一个简单的JSP程序一,互联网和Web技术 互联网的出现使得世界有可能成为一个“地球村”,而Web技术则真正使得“地球村”成为现实。 Web技术构建在TCP/IP应用层http协议基础上,它引入了超文本技术,使得用户在互联网上共享信息变得非常简单,只需在电脑中点击鼠标,就可以查阅全世界提供的信息。 1.1 Web技术主要组成:(1)HTML文件这是一种包含文字、图形、声音、动

2、画、影音等信息的文本类型的文件,扩展名为htm或html。它在文件中利用特定的“标记”来描述文件携带的文字、图形、声音等信息,又被称为网页文件。(2) HTTP协议它以TCP/IP协议为基础,专门用来在网络中传输HTML文件。 (3) SCRIPT代码 与HTML标记结合,生成动态网页 (1) 用HTML/XML实现信息与信息的连接; (2) 用URL(Uniform Resource Locator)实现全球信息的精确定位; (3) 用HTTP协议实现分布式信息共享. 一个简单的HTML示例 欢迎光临我的主页这是我第一次做主页,无论怎么样,我都会努力做好! 1.2 WEB技术基本概念 HTM

3、L文件的创建者将文件存放在连入网络的计算机中,这台存放有HTML文件的计算机称为服务器。 其他计算机要查看服务器上的HTML文件,首先要通过网络和这台服务器相连接,所有和服务器相连接的计算机称为客户机。 客户机需要安装可以向服务器提出请求并可以下载查看HTML文件的软件,这种软件称之为浏览器。常用的有Windows自带的Internet Explorer。浏览器等客户端软件在术语中又称为用户代理软件(User Agent)。 浏览器通过HTTP协议连接服务器,将服务器中存放的HTML文件下载到本机上,然后显示这些文件。为了能够回应客户机的HTTP下载请求,服务器必须要安装并运行一种特定的软件,

4、这种软件就是Web服务器软件,比如Tomcat ,IIS,PWS。 问题,客户机与服务器必须是两台计算机吗? WEB工作原理图浏览器界面客户机网络Web服务器软件服务器HTTP协议HTTP协议HTML文档动态HTML的生成 前面阐述的HTML页面只能显示预先做好的内容,如果需要动态的根据用户提交给服务器的要求显示特定的数据,前述的HTML页面就不能满足要求了。在企业应用中,经常会有这种需求出现,比如用户点击企业的网站,查询产品的报价,而产品的价格信息处于企业的数据库中,这时就需要查询数据库,然后动态生成需要的HTML页面。动态网页需要Web服务器软件的支持。而这种能够对数据库能够操作的服务器是

5、应用程序服务器。动态网页原理图 www数据库服务器企业原有MIS系统Mail服务器应用程序服务器企业客户WEB服务器 1.3 WEB发展的历史 WEB 这个Internet上最热门的应用架构是Tim Berners-Lee 1990年发明的. nxoc01.cern.ch 是第一个Server. T.B.L在自己编写的图形化的Web浏览器worldwideweb上看到了最早的Web界面. 1991年,CERN( European particle physics Laboratory )正式公布了Web的标准. 目前WEB的各种技术标准都由W3C(world wide web consorti

6、um)进行管理. WEB服务器端的开发技术是有静态到动态逐渐发展起来的. (1) 早期简单的SERVER接受BROWSER 发来的HTTP请求, 将SERVER上存储的HTTP文件返回给BROWSER. SSI(SERVER SIDE INCLUDES)的技术可以让WEB服务器在返回HTML之前,更新内容. (2)CGI (COMMON GATEWAY INTERFACE)是第一种真正使服务器能根据运行时的具体情况动态生成HTML页面的技术.它能够允许服务器的应用程序根据客户端的请求动态生成HTML页面,这使得客户端与服务器端的动态信息交换成了可能。(CHATROOM,DISCUSSION,E

7、LECTRONIC COMMERCE, INFROMATION INDEX, FULL TEXT INDEX, INFORMATION EXCHANGE ). CGI程序最初在UNIX操作系统上CERN或NCSA(NATIONAL CENTER FOR SUPERCOMPUTING APPLICATIONS)格式的服务器上运行。 在其它操作系统(如:windows )的服务器上也广泛地使用CGI程序,同时它也适用于各种类型机器。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。对初学者来说,最好选用易于归档和能有效表示大量数据结构的语言,例如 UNIX环境中: Perl

8、 (Practical Extraction and Reporting Language). Bourne SheLll或者Tcl (Tool Command Language) Windows环境中: C和C+ 最终Perl由于其跨操作系统、易于修改的特性成为了CGI的主流编写语言,以至于一般的“CGI程序”就是Perl程序。 (3)1994年,Rasmus Lerdorf 专用于WEB服务器端的PHP(PERSONAL HOME PAGE). 与以往的CGI程序不同,它将HTML代码与PHP指令合成为完整的服务器动态页面。 (4) 1996年,MICROSOFT借鉴PHP,在其WEB 服

9、务器IIS 中引入了ASP技术。2000年,.NET 技术出现。(5)1997年, SUN公司的以JAVA 为技术代表的SERVLET技术问世。1998年,JSP 出现。两者结合加上JAVABEAN 技术让JAVA开发者同时拥有了类似CGI程序的集中处理功能和类似PHP与HTML结合的功能。此外,JAVA的运行时编译技术大大提高了SERVLET和JSP的执行效率,这也正是SERVLET 和JSP被后来的J2EE平台吸纳为核心技术的原因之一。 综上所述,JSP ,ASP/ASP.NET, PHP 是目前开发WEB的三种主要技术 。 J2EE 与与 .NET两大平台比较两大平台比较 (1) 两大开

10、发平台 J2EE 与 .NET。 2000年左右分别诞生于JAVA与WINDOWS阵营。 J2EE是纯粹的基于JAVA的解决方案。这个平台的三大核心技术就是SERVLET, JSP,EJB (ENTERPRISE JAVA BEAN). EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.COM技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。 EJB定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。是Java 的企业级的Bean。 EJB 从技术上而言不是一种“产品”,EJB只 是一种

11、标准描述了构建应用组件要解决的几个问题: 可扩展 (Scalable) 分布式 (Distributed) 事务处理 (Transactional) 数据存储 (Persistent) 安全性 (Secure) EJB 服务器负责完成了上述“繁杂”的工作,从而使得应用开发人员把主要精力放在程序的业务逻辑的实现而不是底层的实现1999年SUN正式发布了J2EE第一个版本,遵循这个标准,为企业级应用提供支撑平台的各类应用服务软件先后出现。比如,IBM的WEBSPHERE,BEA的WEBLOGIC。 与J2EE 不同,Microsoft的.NET 平台是一个强调多语言之间交互的通用运行环境。C#和C

12、LI(Command Line Interface )标准是它的基础。 .NET 的设计者试图以这个平台作为大多数Windows 应用的首选运行环境,但.NET 首先吸引的还是WEB开发者的眼光。大概这是因为.NET 及其相关的开发环境不但为WEB服务器端应用提供了一个支持多语言的,通用的运行平台,而且还引入了ASP.NET这样一种全新的WEB开发技术。 ASP.NET超越了ASP的局限性,可以使用WB.NET,C# 等编译语言。 (2) JSP与ASP/ASP.NET的比较 (a) 从某种程度上来说ASP/ASP.NET主要应用于WINDOWS平台,带有很明显的MICROSOFTS的痕迹。支

13、持的语言除了WBSCRIPT,JAVASCRIPT, 还有VB,C+,C#等微软所支持的20多种语言。ASP不如ASP.NET好的原因是后者先把服务器上的程序语言编译成MSIL(Microsoft Intermediate Language )。 JSP是J2EE的一个重要组成部分,只支持JAVA 语言。而JAVA与C+比较起来是以牺牲效率换来平台的无关性。所谓的平台的无关性就是JAVA程序会事先被编译成一种字节代码,然后由JVMJAVA VIRTUAL MACHINE来执行。在性能上JSP在服务器端要最终转化成为SERVLET来执行,而它的执行速度要比传统的JAVA 程序快。 SERVLET

14、 的字节代码在客户请求的时候才执行。尽管首次调用它的时候会有几秒钟的加载时间,但后续的请求响应非常迅速,这是因为服务器已经缓存了它。这一点上ASP.NET 借鉴了JSP。 (b) 在ASP/ASP.NET中可以通过COM对象来封装商业逻辑,或者完成高强度的计算。COM Microsoft组件对象模型(Component Object Model)的简称,是一个说明如何建立可动态交替更新组件的规范,它提供了客户和组件为保证能够互操作应该遵循的标准, COM组件组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。COM可以用任何符合标准对象模型的任何语言开发,

15、同时因为组件可以用C+ ,C等这种编译类型的语言构成,而不是所谓的解释性的脚本语言,所以在性能上也有不少的改进。 但是它的缺点也很明显就是COM 太复杂,需要大量的学习与培训,并且即使有了深厚的C+的工地也无法轻松胜任。而且在ASP中还存在COM组件注册的问题,常常会有不同版本的DLL覆盖的问题发生,从而使得ASP网页的部署相当复杂。不过这个问题在ASP.NET有了改进。 与微软的COM比较,JSP用JAVABEAN来完成一些商业逻辑或者大量计算的问题。它只用JAVA 语言开发,所以很容易开发。并且JAVABEAN 也不存在注册的问题。 (c) 在程序结构上以及和数据库的连接上两者有相似的地方

16、但也有明显的不同,尤其是与数据库的连接方面。 ASP.NET使用ODBC 或者ADO.NET(ASP 用ADO对象)连接数据库。而JSP 通过一个叫JDBC的API接口连接数据库。数据库通过JDBC的驱动程序,使得JAVA 可以用标准的方式访问数据库,而如果某数据库没有JDBC驱动,而只有ODBC驱动,那么就通过JDBC-ODBC桥连接。 (3 ) PHP 是一种跨平台的服务器端的嵌入式的脚本语言,大量的借用C ,JAVA 和PERL 语言的语法,结合自己的特性,使得WEB开发者可以快速的写出动态的网页,它支持目前大多数的数据库,再者它是完全免费的,也具有面向对象的特性,可以在WINDOWS

17、,UNIX ,LINUX平台上运行。缺点是不太适合开发大型的电子商务站点。也就是PHP 缺乏规模支持,其次缺乏多层次的结构支持。比如对于负荷大的站点,我们往往采用分布计算的方式-数据库,应用逻辑,表示逻辑彼此分开,而且同一个层次也可以根据流量分开组成二维阵列。但是PHP没有这种支持。二,网络体系B/S与C/S 在构建企业级应用的时候,通常需要大量的代码,而且这些代码一般分布在不同的计算机上,划分代码运行在不同计算机上的理论就是多层设计理论。 企业级应用系统通常分成:两层三层N层架构。 基于C(client)/S(server)体系结构的项目(project): 一般只有两层,C/S。 比较适合

18、应用在局域网中。 开发多采用VB,VC,Delphi,Java数据库。 需要同时开发客户端与服务器端程序 用户显示逻辑层数据库层两层应用架构 基于B(browser)/S结构的项目(project): 三层或者N层。 目前主要采用两种服务器端语言:JSP(Java Server Pages)ASP/ASP.NT(Active Server Pages)PHP 两种语言构成两大开发体系:JSP+Oracle体系ASP+SQL Server体系 在两层应用中,应用程序直接同数据库进行对话。三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常这个层叫做“商务逻辑层(WEB层)”,如图 :用

19、户表示逻辑层数据库层三层应用架构商务逻辑层 如果某个应用超过三个独立的代码层,那么这个应用叫做N应用,就不再叫四层或者五层等名称,而是统称为N层。如图用户表示逻辑层数据库层N层应用架构商务逻辑层服务层开发语言比较两种体系结构比较 两层架构的优点是开发过程比较简单,利用服务器端的程序直接访问数据库,部署起来比较方便。缺点是程序代码维护起来比较困难,程序执行的效率比较低,用户容量比较少,难于升级与改进,可扩展性也不理想。 三层架构基本解决了两层架构的缺点,将显示部分和逻辑流程控制分开,利用服务器应用程序实现显示部分,利用商务逻辑层实现程序的流程控制,分层使维护变的方便一些,而且执行效率也会有所提高

20、,但是相对部署起来就比较困难一些。 一个多层化应用能够为不同的每种服务提供一个独立的层,使得各个层的工作能够比较单一简单。三,常用应用开发环境介绍 在开发过程中,基于JSP项目通常涉及到Web服务器数据库服务器集成开发环境的选择 WEB服务器 WebLogic是BEA公司(著名的Java 中间软件公司)的产品,是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,系统要求小,运行速度快,曾经是市场占有率最高的产品 另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,性能稳定,是IBM电子商务战略的旗舰产品。 在小型的应用系统或者有特殊需要的

21、系统中,可以使在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的用一个免费的Web服务器:服务器:Tomcat,该服务器支持全,该服务器支持全部部JSP以及以及Servlet规范,比较适合初学者。规范,比较适合初学者。小巧快速,完全免费,由Apache的成员开发数据库服务器 在Java相关的开发领域中,常用的是3种数据库:Oracle、DB2和MySQL。有时候也使用微软公司的SQL Server数据库服务器 Oracle数据库是Oracle公司的产品,也是历史最悠久的数据库,世界前50强的企业中,80%使用Oracle数据库作为公司的数据库服务器。服务器的图标如图 IBM公司的DB2

22、也是一种常用的数据库,和IBM的WebSphere配合构成完整的企业级解决方案,数据库服务器的启动界面如图 目前商业数据库服务器市场三足鼎立:Oracle、DB2和微软公司的SQL Server,在实际应用中,有一个常用的免费的小型数据库服务器:MySQL,启动界面如图 Web服务器和数据库服务器构成了发布平台,需要选择合适的开发工具以提高编码的效率,目前有两种常用的企业级集成开发环境,JBuilder和WebSphere Studio。 JBuilder是Borland公司的产品,支持几乎全部的J2EE组件,是目前最为常用的开发环境,启动界面如图 集成开发环境 IBM公司的WebSphere

23、 Studio,注意和WebSphere的区别,WebSphere是Web服务器,只能用作发布服务器,WebSphere Studio是一套集成开发环境,同时集成Web服务器功能,启动界面如图 Eclipse 是一个开放源代码的、基于 Java 的通用的可扩展开发平台。功能强大,免费的软件,可以从免费下载,建议下载使用RELEASE和STABLE。 JCreator,安装操作使用比较简单,比较适合初学者使用。 EditPlus,现在使用者较少。四,JSP开发环境的构建 JSP(JavaServer Pages)是SUN公司倡导,建立一种动态网页的技术标准。在传统的

24、HTML中加入JAVA程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(.jsp)。WEB服务器在遇到访问JSP网页的请求的时候,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。而程序片段可以操作数据库,重新定向网页以及发送E-MAIL等。所有程序都在服务器端执行,网络上传输的是结果。 在JAVA基础上开发的JSP实现了动态页面与静态页面的分离,脱离了硬件平台的束缚,大大提高了JSP在INTERNET上的应用。为什么使用JSP 首先,JAVA具有“write once, run anywhere”的特性,是平台无关的。从而JSP页面也是是平台无关的。不论

25、是动态WEN页面还是它隐含的服务器端的组件。用户都可以在任意一个平台上编写,然后在在任何一个支持JSP的WEB服务器上运行,并且都可以通过浏览器来浏览。 其次,JSP技术可以编写具有可重用,跨平台的服务器组件JavaBean。所以,JSP在提供了JAVA编程语言的功能和灵活性的同时,减少了开发的时间,由于组件的开发与WEB设计可完全分开进行,所以提高了跨功能团队的开发与合作效率。 最后,JSP页面是JAVA企业级平台(J2EEJava2 Platform Enterprise Edition)的一个有机组成部分,它把JAVA技术带入到企业级运算环境中,可以用支持JSP技术的WEB服务器作为前端

26、,然后开发强大功能的企业级或者中间层服务器端应用。 JSP运行环境需要JDK的支持,需要安装两个软件:j2sdk和Tomcat。 下载JDK(免费): 最好是最新版本的JDK(当前SUN公司最新版本的JDK为J2SDK1.6) 下载或购卖JSP服务器软件,并按照要求进行安装:TOMCAT(免费)-jakarta-tomcat-5.0.28.exe 先安装JDK,后安装TOMCAT 名称安装路径下载网站 Jdk: http:/ Eclipse / Tomcat / 环境变量的设置 安装完JDK之后就要设置环境变量

27、: JAVA_HOME=D:javajdk1.6. Path=D:javajdk1.6bin; TOMCAT安装完成之后环境变量的设置: CATALINE_HOME=D:Tomcat 或者TOMCAT_HOME= D:Tomcat 五:一个简单的Java程序 JAVA程序分类 Java Application 以main()方法作为程序入口,由Java解释器加载执行。 Java Applet 没有main()方法作为程序入口,由浏览器或appletviewer加载执行。一个简单的JAVA程序/* Display a message */class HelloWorld public stati

28、c void main(String args) System.out.println(Hello World!); HelloWorld.java /* Display a message */class HelloWorld public static void main(String args) System.out.println(Hello World!); HelloWorld.java这将是结果这将是结果 .class 文件名文件名 在命令行中使用 Javac 命令, 例如: d:javaex javac HelloWorld.java 源文件名为HelloWorldApp.ja

29、va,注意:文件名必须与公共类名相同;由javac编译器编译源程序,产生字节码文件(.class文件)。本例中产生HelloWorld.class文件。 D:javaexjava HelloWorld 此命令将启动Java虚拟机,由java解释器解释执行。 Java 程序有一个命名的类程序有一个命名的类 类体包括在大括弧内类体包括在大括弧内/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); (几乎几乎) 每个每个Java 程序都必须有一

30、个程序都必须有一个 main() 方法方法/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); 方法体也嵌入在大括弧中方法体也嵌入在大括弧中/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); 每个语句后有一个分号每个语句后有一个分号 /* Display a message */c

31、lass hello public static void main(String args) System.out.println(Hello World!); 标识符标识符 System.out 是一个是一个 对象对象 标识符标识符 println 该对象的一个方法该对象的一个方法/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); “Hello World”是一个是一个 string 在在 Java中专门有一个字符串类型中专门有一个

32、字符串类型(与与 C+不不同同) Strings 与与 characters不同不同/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); 访问控制符访问控制符 Public: 表明这个方法可以被该类外的对象表明这个方法可以被该类外的对象调用调用/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); 访问控制符访问控制符 Static: 表明该方法在整个程序的执行过表明该方法在整个程序的执行过程中一直保留在内存中程中一直保留在内存中/* Display a message */class hello public static void main(String args) System.out.println(Hello World!); 访问控制符访问控制符 Void: indicates that this fu

温馨提示

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

评论

0/150

提交评论