spring MVC
- MVC是什么
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
- Spring MVC原理
流程图:
步骤解析:
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)
第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器HandlerAdapter将会根据适配的结果去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)
第八步:前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)
第十一步:前端控制器向用户响应结果
- RestFul风格
restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
把url的风格改变了:
传统:http://localhost/test?a=1&b=2
RestFul:http://localhost/test/1/2
一定程度上,保证了安全性,没有暴露参数,也就是说参数1,2,如果不知道真正的api,你是不知道它们是不是参数值
RestFul有GET、 POST、 PUT、 PATCH、 DELETE 等请求方式
- 请求转发与重定向的区别
- 请求转发只有一次请求一次响应,重定向有两次请求两次响应.
- 请求转发浏览器的地址栏不会发生变化,重定向浏览器地址栏会发送变化,因为重新发送了一次请求.
- po、vo、pojo、dao、bo、 dto是什么
po:persistent object 持久对象
vo:value object 值对象 / view object 表现层对象
pojo:plain ordinary java object 无规则简单java对象
-
-
- pojo持久化之后==〉po
- pojo传输过程中==〉dto
- pojo用作表示层==〉vo
- po和vo都应该属于它。
-
dao:data access object:数据访问对象
bo:business object:业务对象
dto:data transfer object:数据传输对象。