声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。css
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和第三方框架等等。
常见的技术有如下几种:html
如今最多见的两种程序架构方式就是C/S和B/S架构,C/S也就是Client/Server架构,即客户端/服务器架构。是你们熟知的软件系统体系结构,经过将任务合理分配到Client端和Server端,下降了系统的通信开销,须要安装客户端才可进行管理操做。客户端和服务器端的程序不一样,用户的操做主要在客户端,服务器端主要是提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。
因此C/S架构的程序对可以减轻服务器压力,并且客户端是安装在用户本地的电脑上,调用本地的一些硬件设备就比较方便,适合用于大型游戏、音频软件、各类工具类软件的程序架构方式。
可是C/S架构也有缺点,升级更新还有维护比较麻烦,系统升级的话,所有的客户端都须要升级,并且没有客户端的话就没法使用任何的功能,设备须要提早安装、更新客户端。 由于这些特性,数据管理软件、网上购物、信息交互部分都不适合使用C/S架构。
C/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程序架构示意图:web
两种程序架构的思惟导图:数据库
在B/S架构的程序中,经过浏览器对服务器进行的请求分为动态请求和静态请求:浏览器
静态请求:服务器
所谓静态请求,就是访问网页时仅从服务器上下载静态文件,例如网页的html、js、css、图片文件等,都属于静态文件。示意图:网络
动态请求:架构
动态请求则是你的请求会通过服务器上的程序处理,和与数据库交互,而后再反馈到网页上,例如最经典的动态请求就是登陆帐户,示意图:并发
能够实现动态页面的常见技术:
关于为何B/S架构的服务器压力比较大:
这是由于全部的网页文件都是存放在服务器的,因此客户经过浏览器访问网页时都是须要从服务器上下载的。而且全部的请求处理都在服务器上进行,动态请求还得须要经过服务器上的应用程序进行处理,而且还要与数据库进行数据的交互,因此相对于C/S架构来讲B/S架构的服务器压力要大,经过搭建服务器分布式处理和集群架构能提高服务器的性能,从而能够解决服务器因为性能不足而出现的负载太高的问题。