1、三层架构

2、阿里巴巴提倡的应用分层结构

开放接口层
可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安全控制、流量控制等。

终端显示层
各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等。

Web 层
主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。

Service 层
相对具体的业务逻辑服务层。

Manager 层
通用业务处理层,它有如下特征: 1) 对第三方平台封装的层,预处理返回结果及转化异常信息; 2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理; 3) 与 DAO 层交互,对多个 DAO 的组合复用。

DAO 层
数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。

外部接口或第三方平台
包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。

3、MVC的结构

4、Spring MVC的工作原理

流程详解:
① 客户端的所有请求都交给前端控制器DispatcherServlet来处理,它会负责调用系统的其他模块来真正处理用户的请求。 
② DispatcherServlet收到请求后,将根据请求的信息(包括URL、HTTP协议方法、请求头、请求参数、Cookie等)以及HandlerMapping的配置找到处理该请求的Handler(任何一个对象都可以作为请求的Handler)。 
③ 在这个地方Spring会通过HandlerAdapter对该处理进行封装。 
④ HandlerAdapter是一个适配器,它用统一的接口对各种Handler中的方法进行调用。 
⑤ Handler完成对用户请求的处理后,会返回一个ModelAndView对象给DispatcherServlet,ModelAndView顾名思义,包含了数据模型以及相应的视图的信息。 
⑥ ModelAndView的视图是逻辑视图,DispatcherServlet还要借助ViewResolver完成从逻辑视图到真实视图对象的解析工作。 
⑦ 当得到真正的视图对象后,DispatcherServlet会利用视图对象对模型数据进行渲染。 
⑧ 客户端得到响应,可能是一个普通的HTML页面,也可以是XML或JSON字符串,还可以是一张图片或者一个PDF文件。

组件及其作用
1、前端控制器 (DispatcherServlet)
接收请求,响应结果,相当于转发器,中央处理器。负责调用系统的其他模块来真正处理用户的请求。 有了DispatcherServlet减少了其他组件之间的耦合度

2、处理器映射器 (HandlerMapping)
作用:根据请求的 url 查找 Handler

3、处理器 (Handler)
注意:编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行 Handler处理器适配器 (HandlerAdapter)
作用:按照特定规则(HandlerAdapter要求的规则)执行Handler。

4、视图解析器 (ViewResolver)
作用:进行视图解析,根据逻辑视图解析成真正的视图 (View)

5、视图 (View)
View 是一个接口实现类支持不同的 View 类型(jsp,pdf等等)

注意:只需要程序员开发处理器和视图。

JavaWeb的架构相关推荐

  1. JavaWeb:JavaWeb技术架构演进

    Java Web,是用 Java 技术来解决相关web互联网领域的技术栈.web 包括:web 服务端和 web 客户端两部分.Java 在客户端的应用有 Java Applet,不过使用得很少,Ja ...

  2. 基于JavaWeb三层架构的OA管理系统

    本系统是一个类似于培训学校的一个管理系统,系统角色有员工,学生. 首页 它的左侧是后台管理系统的功能界面,右侧是前面的通过数据库查询的一个月或者是一年的统计信息,下面柱状图个折线图采用的是echart ...

  3. JavaWeb三层架构详解

    什么是三层架构? 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer).业务逻辑层(Business L ...

  4. JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别

    1.三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么在B/S架构 ...

  5. JavaWeb三层架构

    什么是三层架构? 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer).业务逻辑层(Business L ...

  6. JavaWeb项目架构之NFS文件服务器

    NFS简介 NFS(Network File System)即网络文件系统. 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录. 主要用途:NFS网络文件系统一般被用来存储共享视频, ...

  7. [Java]JavaWeb学习笔记(动力节点老杜2022)【Javaweb+MVC架构模式完结】

    文章目录

  8. Java Web学习总结(38)——JavaWeb网站架构设计总结

    初始搭建 开始的开始,就是各种框架一搭,然后扔到Tomcat容器中跑就是了,这时候我们的文件,数据库,应用都在一个服务器上.

  9. Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教、用户、管理员)+可以用于学习SSM框架、javaweb、maven项目入门

    Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教.用户.管理员)+可以用于学习SSM框架.javaweb.maven项目入门 可以用于课程设计.毕业设计的知识点入门学 ...

最新文章

  1. 直流稳压电源的输出特性有哪些
  2. DBUtils的使用之增删改的操作
  3. iOS架构-cocoapods之本地git库的管理(15)
  4. mysql中concat函数的使用相关总结
  5. pyHook 转码问题-MouseSwitch() missing 8 required positional arguments...,原因及解决办法
  6. 知道的越多,越感觉自己渺小
  7. 梯形图 c语言代码生成,PLC梯形图中内嵌C语言编程的实现
  8. Android RenderScript 关于Compute 的使用
  9. 分组函数group by和Oracle中分析函数partition by的用法以及区别
  10. python遗传算法最短路径问题有几种类型_用遗传算法求解最短路径问题.pdf
  11. 围棋,与生活,与编程
  12. 知网不能下载PDF?CAJ格式太鸡肋?
  13. 51单片机蓝牙模块的使用方法
  14. 第十四章 C语言头文件的编写_C语言模块化编程中的头文件
  15. 中發白——企业软件公司的战略大三元
  16. excel多元线性拟合_急!!!用excel做的多元线性回归分析~|excle做三元回归
  17. 萤石摄像头实现web端监控预览以及录像回放
  18. QTreeWidget支持双击编辑Item节点的内容
  19. 微信怎么自动加好友java_iOS逆向开发之微信自动添加好友功能
  20. with as的update写法

热门文章

  1. 【C语言】判断二维空间中的点,是否在圆内(输出:该点在圆内、该点在圆上、该点在圆外)。 允许的误差为1e-6.
  2. Matlab plot画图 坐标字体、字号、范围、间隔等的设置
  3. 华为服务器sn号查询网站,linux 查询服务器sn号
  4. 一些企业个人网银的U盾或是usbkey在web(IE)网页中无法使用的解决方法
  5. 【Simulia】 Lsight多学科仿真流程 | 达索系统百世慧®
  6. 购买太平洋保险公司聚宝盆险发现虚假宣传,没有证据,如何向保监会投诉
  7. HTML页面可视化快速设计
  8. vmware workstation虚拟机连接外网(Nat模式)
  9. [PTA]实验11-2-7 统计专业人数
  10. 网络攻防实战演习之蓝队指南