spring MVC从2014年开始流行,基本工作上都用过,一起在熟悉和深入了解下。源码:https://github.com/limingios/netFuture/blob/master/仿springmvc/tl0920
MVC其实就是一种设计模式,三层架构:视图,模型,控制。J2EE开发的模式,例如servlet来说绝对是简洁。
本身都是spring,肯定可以完美集成
静态就是通过对应静态文件的缓存,key来对应图片。很多时候,我们都是通过nginx然后跳转到tomcat,nginx的作用其实不光是代理,还可以缓存,它用来缓存让第二次的话直接读取本地,较少服务端的压力。
1. html,css,img,flash客户端
2. jsp,jstl->服务端
3. last-modified
第一次登陆,网站返回200状态码
4. if-modified-since
第二次登陆,网站返回304状态码,if-modified-since等于第一次的。
5.加载优先级 compiler & listings
官网:https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#spring-web
具体创建一个简单的mvc例子,这里就不创建了。
小技巧
>app 或者pc 区别分开来,返回结果是一样的
>@RequestMapping(value = {“/app”,”/pc”})
对上述流程图的解释:
* 用户发起请求到前端控制器(Controller)
* 前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。
* HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组
* 前端处理器通过处理器适配器包装后执行Handler对象。
* 处理业务逻辑。
* Handler处理完业务逻辑,返回ModelAndView对象,其中view是视图名称,不是真正的视图对象。
* 将ModelAndView返回给前端控制器。
* 视图解析器(ViewResolver)返回真正的视图对象(View)。
* (此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
* 返回渲染后的视图(html/json/xml)返回。
* 给用户产生响应。
PS:先了解总体的流程,然后在细细的品味源码的味道,重点是DispatcherServlet 是HTTP请求处理程序/控制器的中央调度程序。
>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:已是最新文章