玩转Web之servlet(三)---一张图看懂B/S架构
学WEB, 首先 要明确B/S架构,本文将简单说一下小编的愚见,若有不当,欢迎大家指正。
首先,什么是B/S架构?B/S是Broweser/Server的缩写,即浏览器/server模式,简单说就是client使用浏览器,服务端使用Webserver,client与服务端之间使用http协议进行通讯。
那么,为什么要使用B/S架构呢?当然是其有一定的长处:
1.传统的C/S架构 须要单独安装client,一旦client版本号发生变化,须要又一次安装,而B/S架构client使用的是浏览器。
2.开发相对简单,C/S模式须要我们在client和服务端编写通信模块和自己定义的通信协议,但B/S架构则使用http协议。
以下是我画的一张B/S架构的流程图:
须要注意的是浏览器按理说应该向Webserver发送请求,webserver再向servlet发送请求,在servlet里对数据进行处理,但也能够直接向servlet容器发送请求,由于servlet容器里也有个通信模块,能够把servlet容器当成一个简单的webserver。
首先client是一个以html为主的页面,当然也可能用到譬如easyui,liger ui的技术,流程就是按图中数字由小到大的方向走的:
1:用户操作client,即对页面进行操作。
2:client页面获取用户操作须要的信息,比方用户登录时的usernamepassword,或对页面进行了点击,须要异步载入数据,将须要发送到server进行处理的数据获取下来
3:通过http的通信模块对2中获取的信息进行打包
4,:通过ajax等技术将数据发送到服务端
5:在服务端通过http将传过来的包进行拆包
6:servlet通过request获取client发来的请求
7~8:在dao层,即业务逻辑层对获取的请求进行处理,然后与数据库进行交互
9~10:将dao层得出的处理结果返回到servlet,通过response返回client
11~12:对要返回的响应打包,通过http协议发送到client
13:将http传过来的包进行拆包
14:对响应进行解析(传过来的是json或其它东西),通过浏览器体现出来
这仅仅是简单的说一下B/S架构,真正使用的时候要做的工作还是非常多,还有就是后期会对一些东西进行封装,所以有些地方会有些出入,但整体思想还是一样的。
作为一名大二在校生,能力有限,若有不合适的地方,欢迎大家不吝赐教
玩转Web之servlet(三)---一张图看懂B/S架构的更多相关文章
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...
- 一张图看懂css的position里的relative和absolute的区别
position有以下属性:static.inherit.fixed.absolute.relative前三个好理解好区分:static:是默认状态,没有定位,元素出现在正常的流中(忽略 top, b ...
- 一张图看懂ANSYS17.0 流体 新功能与改进
一张图看懂ANSYS17.0 流体 新功能与改进 提交 我的留言 加载中 已留言 一张图看懂ANSYS17.0 流体 新功能与改进 原创2016-02-03ANSYS模拟在线模拟在线 模拟在线 ...
- FUNMVP:几张图看懂区块链技术到底是什么?(转载)
几张图看懂区块链技术到底是什么? 本文转载自:http://www.cnblogs.com/behindman/p/8873191.html “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人 ...
- 4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)
4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程) (2016-02-01 03:21:06) 转载▼ 标签: delphi ios delphi10 教程 编程 分类: 编程 ...
- [转帖]两张图看懂GDT、GDTR、LDT、LDTR的关系
两张图看懂GDT.GDTR.LDT.LDTR的关系 2018-06-09 18:13:53 Six_666A 阅读数 2044更多 分类专栏: 深入理解linux内核 转自:http://ju.o ...
- 一张图看懂Function和Object的关系及简述instanceof运算符
我在写一篇图解prototype和__proto__的区别时,搜资料搜到了一个有意思的现象,下面这两个运算返回的结果是一样的: Function instanceof Object;//true Ob ...
- Nodejs学习笔记(三)——一张图看懂Nodejs建站
前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...
- 一张图看Goodle Clean设计架构
之前用一张图分析了Google给出的MVP架构,但是在Google给出的所有案例里面除了基本的MVP架构还有其它几种架构,今天就来分析其中的Clean架构.同样的,网上介绍Clean架构的文章很多,我 ...
随机推荐
- 页面插入Flash方式
法一 <!-- 播放Flash动画代码 --> <div class="logoFlash"> <object classid="clsid ...
- 简单的html5 File base64 图片上传
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- wdcp-apache开启KeepAlive提高响应速度
因为我们的网站,媒体文件,js文件,css文件等都在同一个服务器上,并且,我们网站有非常多的图片,所以当建立好tcp链接之后,不应该马上关闭连接,因为每建立一次连接还要进行dns解析,以及启动一个ht ...
- mysql数据类型——枚举enum(‘F’,'M')
ENUM(“value1”,“value2”,...) 说明:枚举,列值可赋予值列表中的某个成员 允许的属性:除通用属性外无其他属性 缺省值:如果列可为NULL,则为NULL:如果列为NOTNULL, ...
- uboot总结:uboot配置和启动过程1(主Makefile分析)
说明:文件位置:在uboot的目录下,文件名为:Makefile 从文件的头部开始分析 1.24-29行,配置uboot的版本信息. VERSION = PATCHLEVEL = SUBLEVEL = ...
- PHP与MYSQL配合完成IP的存取
如何存储IP 程序设计要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不可忽略的重要部分,巧存IP地址可以一定程度提升性能. 利用函数算法处理 MySQL没有直接提供IP类型字段,但有 ...
- "sessionFactory " or "hibernateTemplate " is required异常
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/ ...
- Samples DataBind FastJson循环引用问题
Fastjson full support databind, it's simple to use. Encode import com.alibaba.fastjson.JSON; Group g ...
- c++ explicit
C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类 ...
- 比较全面的gdb调试命令 (转载)
转自http://blog.csdn.net/dadalan/article/details/3758025 用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形 ...