Spring框架学习笔记(三)-- Spring MVC

      所谓MVC,即模型-视图-控制器,是一种比较普遍使用的设计模式。它通过分离模型、视图、控制器在程序中的角色进行解耦的。通常,模型负责封装应用程序数据在视图层的展示视图负责展示这些数据控制器负责接收来自用户的请求,并调用后台服务来处理业务逻辑。(核心思想是将业务逻辑从界面中分离开来,允许它们单独的改变而不互相影响)

      所谓Spring MVC,是基于Spring实现MVC设计模式的一种Web框架,它与spring无需通过中间整合层进行整合    。它以强大的Spring Ioc容器为基础,充分利用容器的特性来简化配置的。

   Spring MVC与Struts2的区别:

  1. Spring MVC的入口是一个servlet(前端控制器),而Struts2则是一个filter(过滤器)
  2. Spring MVC是基于方法(切面)开发的,而Struts2是基于类开发的
  3. Spring MVC通过参数解析器将request请求数据解析,并给方法形参赋值,将数据和视图封装成对象,最好通过request域传输到页面,而Struts2通过值栈存储请求和响应数据的。

   Spring MVC的运行原理:

  1. 用户发送请求-->DispatcherServlet:发起请求到前端控制器(DispatcherServlet);
  2. DispatcherServlet-->HandlerMapping:前端控制器请求HandlerMapping查找 Handler可以根据xml配置、注解进行查找会把请求映射为HandlerExecutionChain对象;(这样,很容易添加新的映射策略)
  3. 处理器映射器HandlerMapping向前端控制器返回Handler;
  4. 前端控制器调用处理器适配器去执行Handler;
  5. 处理器适配器去执行Handler;
  6. Handler执行完成给适配器返回ModelAndView;
  7. 处理器适配器向前端控制器返回ModelAndView;
  8. 前端控制器请求视图解析器去进行视图解析;
  9. 视图解析器向前端控制器返回View;
  10. 前端控制器进行视图渲染;
  11. 前端控制器向用户响应结果,流程结束;

   Spring MVC使用流程:

  1. 导入Spring MVC所需要的jar包
  2. 添加Web.xml配置文件中关于Spring MVC的配置
  3. 添加xxx-servlet.xml配置文件(xxx与Web.xml文件中相匹配)
  4. 创建jsp文件(test.jsp),用于显示视图(View层)
  5. 创建Controller类,用于控制层操作(Controller层)
  6. 配置并启动Tomcat服务器进行运行

    Spring MVC常见注解:

    @Controller:负责注册一个bean到Spring上下文中

    @RequestMapping:注解为控制器指定可以处理哪些URL请求

    @RequestBody:用于读取Request请求的Body不等数据,并进行解析,然后把相应的数据绑定到返回对象中,再把返回对象绑定到controller中方法的参数里

    @ResponseBody:用于将Controller方法返回的对象转换为指定的格式后,写入到Response对象的body数据区

    @RequestParam:把请求参数传递给请求方法中

    @PathVariable:绑定URL占位符到入参

    @ExceptionHandler:出现异常时会调用此方法

    @ControllerAdvice:将一个controller成为全局的异常处理类,处理所有Controller发生的异常


猜你喜欢

转载自blog.csdn.net/sihailongwang/article/details/79590090