声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。
JavaWeb介绍
JavaWeb也就是J2EE,JavaWeb主要是使用各种Java企业级技术来解决相关web互联网领域的技术总和。
而且这些技术有一个标准也就是J2EE规范,J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运行在服务器端的Web组件;Enterprise Java Bean (EJB )组件是运行在服务器端的业务组件。J2EE组件和“标准的” Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。
所以web包括:web服务器和web客户端两部分。Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
常见的技术有以下几种:
程序架构通常分为C/S和B/S架构:
C/S架构:
现在最常见的两种程序架构方式就是C/S和B/S架构,C/S也就是Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的操作主要在客户端,服务器端主要是提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。
所以C/S架构的程序对能够减轻服务器压力,而且客户端是安装在用户本地的电脑上,调用本地的一些硬件设备就比较方便,适合用于大型游戏、音频软件、各种工具类软件的程序架构方式。
但是C/S架构也有缺点,升级更新还有维护比较麻烦,系统升级的话,全部的客户端都需要升级,而且没有客户端的话就无法使用任何的功能,设备需要提前安装、更新客户端。 因为这些特性,数据管理软件、网上购物、信息交互部分都不适合使用C/S架构。
C/S程序架构示意图:
B/S架构:
另外一种B/S架构,即Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过浏览器实现。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如Chrome,Firefox或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。
以为页面上的内容全部都是从服务器上下载下来的,以后客户端没有什么更新这一说,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,在浏览器上只需要刷新一下就能看到最新的内容,不用更新客户端。
但是B/S架构也有相应的缺点,游戏方面只能做网页小游戏,如果是大型游戏的话浏览器受不了,而且网络和服务器也支撑不了,因为全部的特效渲染、数据计算都得在服务器上完成后通过网络发送到浏览器上,这是不可能完成的,所以B/S架构不适合做大型游戏。B/S架构不能像C/S架构那样方便的访问、调用用户本地的硬件设备,访问起来很麻烦。B/S架构把系统功能实现的核心部分集中到服务器上,所以服务器的压力也比较大。
B/S程序架构示意图:
两种程序架构的思维导图:
在B/S架构的程序中,通过浏览器对服务器进行的请求分为动态请求和静态请求:
静态请求:
所谓静态请求,就是访问网页时仅从服务器上下载静态文件,例如网页的html、js、css、图片文件等,都属于静态文件。示意图:
动态请求:
动态请求则是你的请求会经过服务器上的程序处理,和与数据库交互,然后再反馈到网页上,例如最经典的动态请求就是登录账户,示意图:
可以实现动态页面的常见技术:
关于为什么B/S架构的服务器压力比较大:
这是因为所有的网页文件都是存放在服务器的,所以客户通过浏览器访问网页时都是需要从服务器上下载的。并且所有的请求处理都在服务器上进行,动态请求还得需要通过服务器上的应用程序进行处理,并且还要与数据库进行数据的交互,所以相对于C/S架构来说B/S架构的服务器压力要大,通过搭建服务器分布式处理和集群架构能提升服务器的性能,从而可以解决服务器由于性能不足而出现的负载过高的问题。