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

本文介绍了接口在项目开发中的作用,可提高开发效率、使程序解耦合。详细对比了B/S与C/S架构,分析其优缺点、维护升级等情况。还阐述了B/S架构程序的访问流程,涉及浏览器、WEB服务器、DB服务器。最后介绍了Apache Tomcat Web Server及6.x服务器相关目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口的作用

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

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

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是建立在广域网的基础上的.。

发展前景

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

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

在这里插入图片描述

一、 以上图形很形象的描述了B/S架构程序的访问流程。
二、 分析小张和小王的访问有什么区别?
小张:它在浏览器地址栏上输入的请求路径是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值