JavaWeb的架构

1、三层架构
JavaWeb的架构_第1张图片
2、阿里巴巴提倡的应用分层结构
JavaWeb的架构_第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的结构
JavaWeb的架构_第3张图片
4、Spring MVC的工作原理
JavaWeb的架构_第4张图片
流程详解:
① 客户端的所有请求都交给前端控制器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等等)

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

你可能感兴趣的:(JAVA)