论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
SpringMVC的工作流程
SpringMVC的工作流程
缠丝猫
金牌会员
|
昨天 21:04
|
显示全部楼层
|
阅读模式
楼主
主题
895
|
帖子
895
|
积分
2685
1.工作流程
(1)用户通过欣赏器向服务器发送哀求,哀求会被Spring MVC的前端控制器DispatcherServlet拦截。
(2)DispatcherServlet拦截到哀求后,会调用HandlerMapping(处理惩罚器映射器)。
(3)处理惩罚器映射器根据哀求URL找到详细的处理惩罚器,生成处理惩罚器对象及处理惩罚器拦截器(如果有则生成)一并返回给DispatcherServlet。
(4)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理惩罚器适配器)。
(5) HandlerAdapter会调用并执行Handler(处理惩罚器),这里的处理惩罚器指的就是步伐中编写的Controller类,也被称之为后端控制器。
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
(8)前端控制器哀求视图解析器根据逻辑视图名解析真正的视图。
(9)ViewResolver解析后,会向DispatcherServlet中返回详细的View(视图)。
(10)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
(11)前端控制器向用户响应结果,欣赏器将结果呈现给用户。
在上述过程中,DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver对象的工作是在框架内部执行的,开辟职员只必要设置DispatcherServlet,完成Controller中的业务处理惩罚并在View中展示相应信息。
2.
DispatcherServlet****类
DispatcherServlet是前端控制器,是整个流程控制的中心。该类拦截了客户端的哀求之后,会根据详细规则将哀求交给其他组件处理惩罚,从而降低了组件之间的耦合性。
3.
Controller****接口
SpringMVC将Controller接口的实现类组件名,作为哀求访问的URL进行映射,进而执行handleRequest()方法中的业务逻辑代码。
4.
@RequestMapping****注解
@RequestMapping注解用于建立哀求URL和Handler(处理惩罚器)之间的映射关系,该注解可以标注在方法上和类上。
(1)标注在 方法上 时,注解内 value值 对应到欣赏器中输入的 访问地址 (站点名之后 URL 字符串)。
请求地址:http://localhost:8080/chapter01/hello
@Controller
public class MyController {
private static final Logger logger=Logger.getLogger(MyController.class);
@RequestMapping("/hello")
public String sayHello() {
logger.info("访问到MyController!");
return "hello";
}
}
复制代码
(2) 标注在 类名上 时,注解内 value值 相当于设置了本处理惩罚器类的 命名空间 ,类中所有哀求地址应为命名空间名 + 方法映射地址名。
请求地址:http://localhost:8080/chapter01/api/hello
@Controller
@RequestMapping("/api")
public class MyController {
private static final Logger logger=Logger.getLogger(MyController.class);
@RequestMapping("/hello")
public String sayHello() {
logger.info("访问到MyController!");
return "hello";
}
}
复制代码
(3)包含的传递参数
属性名
类型
形貌
name
String
可选属性,用于为映射地址指定别名。
value
String[]
可选属性,也是默认属性,用于指定哀求的URL。
method
RequestMethod[]
可选属性,用于指定该方法可以处理惩罚哪种类型的哀求方式。
params
String[]
可选属性,用于指定客户端哀求中参数的值,必须包含哪些参数的值,才可以通过其标注的方法处理惩罚。
headers
String[]
可选属性,用于指定客户端哀求中,必须包含哪些header的值,才可以通过其标注的方法处理惩罚。
consumes
String[]
可选属性,用于指定处理惩罚哀求的提交内容类型(Content-type)。
produces
String[]
可选属性,用于指定返回的内容类型,仅当request哀求头中的(Accept)类型中包含该指定类型才返回。
(4) 组合注解
从Spring 4.3版本开始,还可以使用组合注解完成客户端哀求方式的限定。
@GetMapping :匹配 GET 方式的哀求 ;
@PostMapping :匹配 POST 方式的哀求 ;
@PutMapping :匹配 PUT 方式的哀求 ;
@DeleteMapping :匹配 DELETE 方式的哀求 ;
@PatchMapping :匹配 PATCH 方式的哀求 ;
5.
ModelAndView****类
ModelAndView类用于封装Controller的处理惩罚结果,除了包含数据之外,还包含要跳转的页面。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
缠丝猫
金牌会员
这个人很懒什么都没写!
楼主热帖
【设置ssh免密不起作用?彻底搞懂密钥 ...
关于Servlet的补充知识
MySQL 8.0 新特性梳理汇总
kubernetes之镜像拉取策略ImagePullSec ...
java如何编写增强for循环呢? ...
【云原生】Docker 进阶 -- 构建自定义 ...
基于C#+unity的2D跑酷闯关对战冒险游戏 ...
关于身体对内对外感受机制的整理 ...
SAP各模块优缺点和发展简析
C++STL容器——string成员函数大全(超 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表