该图描述的是一次请求的处理过程, 学识有限, 有错误请指出!
- DNS负责域名的解析, 比如访问www.baidu.com 先找到DNS获取相应的服务器IP和端口,
- 请求消息到达端口以后由TOMCAT主动去询问自己占用的端口是否由请求发来,
- 如果有请求TOMCAT交给对应的项目处理
- 该项目springmvc的DispatcherServlet拦截请求并查询一个或多个HandlerMapping,找到处理请求的Controller.
这个map表由很多key:value键值对组成,
key值是controller的名字(@mapping ...), value值是该controller所在类的地址和方法签名
(一个类中可能由很多controller)这个找到controller位置并实例化的过程叫做反射
反射得到实例后通过代理执行相应的方法即相应controller
- DispatcherServlet找到并实例化Controller,把请求提交给他
- Controller调用需要的service业务逻辑处理(如果需要操作数据库, service会调用dao层访问数据库)后,会返回一个ModelAndView
- Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
- 视图对象负责渲染返回给客户端。
到这SSM框架完成了一次请求的基本处理
不止SSM框架, JAVA框架核心即 反射与代理!