1、SpringMVC执行原理
1、 DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。
-
我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
-
http://localhost:8080 ------> 服务器域名
-
SpringMVC ------> 部署在服务器上的web站点
-
hello ------> 表示控制器
-
如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
2、 HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。 例如这里请求了一个hello,HandlerMapping根据hello请求找到配置文件里的 Handler 处理器
3、 HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。
4、 HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
5、 HandlerAdapter表示处理器适配器,他会找到具体的类,例如这里找到了HelloController类。
6、 Handler让具体的Controller(也就是具体的类)执行。
7、 Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
8、 HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
9、 DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
-
获取了ModelAndView的数据
-
解析ModelAndView的视图名字
-
拼接视图名字,找到对应的视图拼接前缀和后缀
-
将数据渲染到视图上
10、 视图解析器将解析的逻辑视图名传给DispatcherServlet。
11、 DispatcherServlet根据视图解析器解析的视图结果,选择确定要调用哪个视图。
12、 最终把视图呈现给用户 。
2、RestFul 风格
概念
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
功能
资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。
分别对应 添加、 删除、修改、查询。
POST提交数据方式
application/x-www-form-urlencoded 是最常见的 POST 提交数据的方式了。浏览器的原生 form表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。