Servlet学习笔记1——JavaWeb架构与服务器

接口的作用

  • 项目有了接口之后就有了分层,多个层之间可以同时开发,这样项目的开发效率可以提高。(调用者不用关心实现者,实现者不需要关心调用者)

  • 接口使程序分为调用方和实现方,调用方和实现方是解耦合的,面向接口编程使项目变得具有可接插性,具有可插拔特性,具有很强的扩展能力。

B/S架构详解以及与C/S架构的对比

零、定义

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

在这里插入图片描述

一、 优点

B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展性非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA****证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

二、 缺点

B/S架构在图形的表现能力上以及运行的速度上弱于CS架构。还有一个致命弱点,就是受程序运行环境限制。由于B/S架构依赖浏览器,而浏览器的版本繁多,很多浏览器核心架构差别也很大,导致对于网页的兼容性有很大影响,尤其是在CSS布局,JAVASCRIPT脚本执行等方面,会有很大影响。

三、 维护和升级

软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

四、 成本与选择

大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置。但在服务器操作系统上,windows并不是处于绝对的统治地位。软件的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

五、 负荷重

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

六、 C/S特点

C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的.。

i. 硬件环境不同:C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的, 不必是专门的网络硬件环境。例如电话上网,,租用设备.,信息管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

​ ii. 对安全要求不同:C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强, 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。B/S 建立在广域网之上, 对安全的控制能力相对弱,面向是不可知的用户群。

​ iii. 对程序架构不同:C/S 程序可以更加注重流程,,可以对权限多层次校验,,对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑,,建立在需要更加优化的基础之上,比C/S有更高的要求。 B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统.。SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟。

不同:C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S 对的多重结构,要求构件相对独立的功能,能够相对较好的重用。

	iiii.系统维护不同:系统维护在是软件生存周期中,开销大。重要C/S 程序由于整体性,,必须整体考察, 处理出现的问题以及系统升级。升级难,可能是再做一个全新的系统。B/S程序由构件组成,方便构件个别的更换,实现系统的无缝升级,系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

	iiii.处理问题不同:C/S 程序可以处理用户面固定,并且在相同区域,,安全要求高需求,与[操作系统](http://baike.baidu.com/view/880.htm)相关,应该都是相同的系统。B/S 建立在[广域网](http://baike.baidu.com/view/21956.htm)上,面向不同的用户群,分散地域,这是C/S无法作到的,与[操作系统](http://baike.baidu.com/view/880.htm)平台关系最小。

一、 技术比较

C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。国内现阶段的大部分ERP(财务)软件产品即属于此类结构。

B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。e通管理系列产品即属于此类结构。

a) 数据安全性比较。由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。

b) 数据一致性比较。在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。

c) 数据实时性比较。在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。

d) 数据溯源性比较。由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。

e) 服务响应及时性比较。企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。软件供应商提供的软件也不是完美无缺的,所以,对已经部署的软件产品进行维护、升级是正常的。C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新(即“休克更新”),其服务响应时间基本不可忍受。而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。

f) 网络应用限制比较。C/S结构软件仅适用于局域网内部用户或宽带用户(1兆以上);而我们的B/S结构软件可以适用于任何网络结构(包括33.6K拨号入网方式),特别适于宽带不能到达的地方(例如迪信通集团的某些分公司,仅靠电话上网即可正常使用软件系统)。

g) 存储模式比较。B/S结构相应数据完全来自于后台数据库,而C/S结构部分数据来源于存储在本地的临时文件,剩余的部分来源于数据库,因此C/S结构响应时间会更快。

二、 商业比较

  1.  投入成本比较。B/S结构[软件](http://baike.baidu.com/view/37.htm)一般只有初期一次性投入成本。对于集团来讲,有利于[软件](http://baike.baidu.com/view/37.htm)项目控制和避免IT黑洞,而C/S结构的软件则不同,随着应用范围的扩大,投资会连绵不绝。
    
  2.  硬件投资保护比较。在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,C/S结构[软件](http://baike.baidu.com/view/37.htm)的一般解决方案是购买更高性能的服务器;而B/S架构则是通过增加服务器的数量来承担更大的负载。
    
  3.  未来发展趋势,是将B/S与C/S的优势完美地结合起来,就是说,该平台的应用系统既能以B/S的方式发布运行,同时又具有C/S方式的极强的可操作性。
    

三、 发展前景

C/S和B/S各有优势,C/S在图形的表现能力上以及运行的速度上肯定是强于B/S模式的,不过缺点就是他需要运行专门的客户端,而且更重要的是它不能跨平台,用c++windows下写的程序肯定是不能在linux下跑的。而B/S模式就不同了,它不需要专门的客户端,只要浏览器,而浏览器是随操作系统就有的,方便就是他的优势了。而且,B/S是基于网页语言的、与操作系统无关,所以跨平台也是它的优势,而且以后随着网页语言以及浏览器的进步,B/S在表现能力上的处理以及运行的速度上会越来越快,它的缺点将会越来越少。比如,未来的HTML5,在图形的渲染方面以及音频、文件的处理上已经非常强大了。不过,C/S架构也有着不可替代的作用。

浏览器、WEB服务器、DB服务器

在这里插入图片描述

一、 以上图形很形象的描述了B/S架构程序的访问流程。请从上面图形中分别找出Browser、WebServer、DBServer(我们称作3tier)。
二、 分析小张和小王的访问有什么区别?
小张:它在浏览器地址栏上输入的请求路径是http://202.108.251.34:8080/egov/login.html,访问原理是:浏览器在广域网中搜索ip地址是202.108.251.34这个计算机,找到这台计算机之后,再去这台计算机上搜索8080相关的服务,就找到了Tomcat服务器(Web Server、Web Container、Web容器),Tomcat服务器正在处于接收用户请求的状态,接收到请求之后解析请求路径,知道小张访问的资源是egov应用(web app)中的login.html资源(纯静态页面),Tomcat服务器负责在Web容器搜索到该资源,并且Tomcat服务器负责将该资源以响应的方式发送给浏览器客户端(小张)。在整个过程中不需要执行egov应用(web app)中的任何java程序,web app的开发者(java程序员)也不需要编写任何java程序,只要编写一个login.html页面放在egov应用中即可。
小王:它在浏览器地址栏上输入的请求路径是http://202.108.251.34:8080/oa/delete?empno=7369,访问原理是:浏览器在广域网中搜索ip地址是202.108.251.34这个计算机(硬件服务器),找到这台计算机之后,再去这台计算机上搜索8080相关的服务,就找到了Tomcat服务器(Web Server、Web Container、Web容器),Tomcat服务器正在处于接收用户请求的状态,接收到请求之后解析请求路径,知道小张访问的资源是oa应用(web app)中的delete资源,这个delete资源不是一个静态的HTML页面,而需要执行一段小java程序去处理用户这次的请求,注意:用户的请求路径/delete和小java程序一定是互相绑定的。这段小java程序再去连接数据库(JDBC),数据库负责删除该empno=7369的数据,并且将删除结果返回给小java程序,小java程序在负责将删除结果响应给浏览器客户端(小王)。

小张和小王的区别:
小张访问的资源是WEB服务器中的一个静态资源,以.html结尾。不需要web app中执行一段java程序。
小王访问的资源是WEB服务器中的一个动态资源,不是以.html结尾的,这个时候就需要Tomcat服务器为我们执行一段对应的小java程序。所以web app中必须有一段小java程序。
以上所描述的小java程序指的就是Servlet,Servlet(Server let) 表示WEB服务器端小java程序。
三、 请分析B/S架构中涉及到的产品、角色、协议以及协议的制定者?

a) B/S架构中涉及到的所有产品、角色:
i. 浏览器(IE,FireFox, Chrome, Opera等)
ii. WEB服务器、WEB Server、WEB Container。(Tomcat、JBOSS、GlassFish等)
iii. DB 服务器(Oracle、Mysql、SqlServer等)
iv. Web App的开发者(Servlet程序员、我们)
b) B/S架构中涉及到的所有的协议、标准、规范:
i. 浏览器和WEB服务器之间遵循HTTP协议,这个协议的制定者是W3C,这个协议是通信协议。HTTP协议包括请求协议和响应协议两个,这两个协议只是方向不同,从浏览器向服务器发送数据叫做请求协议,从服务器向浏览器发送数据我们叫做响应协议,这里的HTTP协议我们用的是HTTP1.1版本(以后详细介绍HTTP协议。)
ii. WEB服务器和web app的开发者(我们)之间有一些规范,例如:Servlet、JSP规范,这些规范的制定者是 SUN。
iii. Web app开发者(我们)和数据库服务器之间有一个规范,叫做JDBC规范,这个规范的制定者是SUN。

注意:我们程序依赖于规范的制定,J2EE规范很多,包括:JDBC、Servlet、JSP、EJB等。

Apache Tomcat Web Server简介

Apache软件基金会

  1. 简介
    Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。

  2. Apache的开源项目Tomcat Server
    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0
    Apache Tomcat 6.x 在汲取 Tomcat 5.5.x优点的基础上,实现了Servlet 2.5和JSP 2.1等特性的支持
    Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat。而O’Reilly出版的介绍Tomcat的书籍的封面也被设计成了一个猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只猫。

Tomat 6.x服务器相关目录介绍

  1. CATALINA_HOME指的是Tomcat服务器安装的根目录,例如:C:\apache-tomcat-6.0.32
  2. CATALINA_HOME/bin :存放了一些Tomat服务器相关的命令,例如启动Tomcat服务器需要使用startup.bat,关闭Tomcat服务器需要shutdown.bat。.bat后缀的文件我们称作批处理文件,批处理文件中有大量的命令。执行批处理文件就是批量执行一些相关的命令。在该目录下以.sh结尾的文件是在unix、Linux操作系统中使用的。例如在Unix操作系统中执行startup.sh,关闭服务器的时候使用shutdown.sh。这些文件叫做shell文件,在这些shell文件中有批量的shell命令。
  3. CATALINA_HOME/conf :存放了一些Tomcat服务器相关的配置文件。有.properties结尾的属性配置文件,有.xml结尾的配置文件,例如:catalina.properties文件、server.xml文件(该文件是一个Tomcat服务器级别的配置文件,配置了相关的服务器端口号等信息)、web.xml(该文件是一个“web应用”相关的模板配置文件)文件、tomcat-users.xml(配置Tomcat服务器用户相关的用户名和密码等信息)文件。
  4. CATALINA_HOME/lib :存放了tomcat服务器的核心程序,所有文件都是以.jar结尾的,这种文件我们称作jar包,在jar包中存放了大量的.class文件。Tomcat服务器的运行主要依赖了这些class文件。其中servlet-api.jar、jsp-api.jar都是SUN制定的servlet、jsp相关的规范,这里的规范就是接口、标准。而其它的jar包中的class都实现了这些接口或者面向了这些接口进行了调用。
  5. CATALINA_HOME/logs :该目录下存储了Tomcat服务器相关的日志信息,由于在DOS窗口中显示文本有限,程序发生异常之后我们无法详细查看所有的信息,这个时候我们可以打开相关的日志文件进行查看。
  6. CATALINA_HOME/temp :临时活页夹,Tomcat服务器运行时用来存储临时文件的。
  7. CATALINA_HOME/webapps :这是一个非常重要的目录,Tomcat服务器规定,所有程序员开发的WEB应用、WEB站点必须存放在该目录下,不然Tomcat服务器无法找到并提供web服务。在webapps目录下存放的一个文件夹代表一个web app(web application)
    E/webapps :这是一个非常重要的目录,Tomcat服务器规定,所有程序员开发的WEB应用、WEB站点必须存放在该目录下,不然Tomcat服务器无法找到并提供web服务。在webapps目录下存放的一个文件夹代表一个web app(web application)
  8. CATALINA_HOME/work :该目录下存放了Tomcat服务器运行JSP的时候生成的 .java文件以及对应的.class文件。(该目录可以暂时放过,等JSP之后再看)

学习自powernode servlet

猜你喜欢

转载自blog.csdn.net/kilotwo/article/details/114155344
今日推荐