zoukankan      html  css  js  c++  java
  • Spring MVC处理

    1.首先,用户发送请求,DispatcherServlet会拦截请求,但DispatcherServlet收到请求后不进行处理,而对URL进行解析得到相应的URI(资源标识符).

    2.DispatcherServlet调用用HandlerMapping,HandlerMapping的作用就是解析请求链接(URI),然后根据请求链接,找到合适的处理器Handler(所说的Handler,也就是ControllerAction),HandlerMapping但并不是简单的返回处理器,而是将处理器和拦截器封装,形成一个处理器执行链(HandlerExecuteChain)返回给DispatcherServlet.
    3.DispatcherServlet 根据获得的Handler类型,选择一个合适的HandlerAdapter.

    4.在HandlerAdapter执行前调用HandlerInterceptor的preHander()方法.

    5.HandlerAdapter定义了如何处理请求的策略,通过请求URI,请求Method和处理器的requestMapping定义,最终调用Handler(Controller)的方法来处理请求,完成功能.

    6.ControllerDispatcherServlet返回一个 ModelAndView 对象(包含模型数据,逻辑视图名字)

    7.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet.
    8.DispatcherServlet 根据ModelAndView实例中的模型数据,逻辑视图名字把信息反馈给ViewResolver.
    9. ViewResolver用于处理视图,然后返回给客户端。
     

    如果是xml配置,在Spring.xml的配置文件中,记得进行HandlerMapping,HandlerAdapter和ViewResolver的注册,如果不进行注册,Spring将使用默认的注册.Controller类的添加,以便依赖注入
    如果是注解的配置,需要在Spring.xml中添加
    <context:annotation-config /> 
    <!-- 简化配置搭配@Resource、@PostConstruct、@PreDestroy等注解 -->
    <context:component-scan />
    <!-- 自动扫描包路径 -->
    <mvc:annotation-drivent />
    <!-- 它会自动注册DefaultAnnotationHanderMappint与AnnotationHanderAdapter这两个bean,不过缺点是无法再注入interceptors属性,就无法指定拦截器 -->
     
  • 相关阅读:
    MyBatis基础
    Maven入门
    前后端分离之 跨域和JWT
    Hive 查询元数据库获取某个分区的count数
    Hadoop3.0 WordCount测试一直Accept 状态,Nodes of the cluster 页面node列表个数为0
    朴素字符串匹配
    iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
    RecyclerView 刷新后自动滚动的问题,notifyDataSetChanged 后自己滚动
    判断decimal 是否为整数
    微信jssdk config:invalid signature 签名错误 ,问题排查过程
  • 原文地址:https://www.cnblogs.com/kirohuji/p/6897248.html
Copyright © 2011-2022 走看看