09.02 问题解决(初步)

来源:互联网 发布:办公软件培训班多少钱 编辑:程序博客网 时间:2024/06/10 16:18

1.前端控制器究竟为什么能调用处理器适配器、处理器映射器、以及视图解析器?

前端控制器DispatcherServlet究竟是个什么东西,首先截一段源码中的解释

 

大致的翻译就是:它是Http请求Handler/Controller的主要调度器,当有一个Web请求时,可以调度已有的Handler,并且提供便利的映射和异常处理机制(谢谢以前疼我爱我的英语老师,让我现在也对英语充满兴趣)

第一步:在web.xml中配置servlet

 

若不配置contextConfigLocation,则默认配置文件为/WEB-INF/servlet名称-servlet.xml(即/WEB-INF/smvc-servlet.xml

反之,则使用默认的配置文件

由于在smvc-servlet.xml中配置了视图解析器等,所有前端控制器可以调用它们。(依旧是迷迷糊糊,回头会继续钻研)

 

2.什么是处理器适配器、处理器映射器?(May_mm表示很迷惑,明天希望更深入一步,不求多,进步一点点就好)

    注解映射器: org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping.class(Spring3.1前使用)

                              org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.class(Spring3.1后使用)

    注解适配器: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.classSpring3.1前使用)

                              org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.classSpring3.1后使用)

配置如下:

 

据了解实际开发中,使用注解驱动的方式较多(掌握)


3.跟踪一下View接口的源码,看看它究竟是个什么东东?(使用跟踪二字仿佛自己是个大手子,哈哈,写完自己都笑了)

 ①:


 

View.class.getName()获得的是:org.springframework.web.servlet.View

②:String getContentType();表示获取该视图的contentType

③:


表示将模型数据填充到request域中


4.处理器映射器返回的是一个链,究竟是什么?(这个时候是不是又得跟踪源码了,写着写着我又笑了)(???)

 

根据源码显示,HandlerExecutionChain中含有一个处理器,和多个拦截器(上一节文章中讲错了,写成了多个handler。。。),以及很多对拦截器interceptor和处理器handler的方法(我还不是很懂,先留个记号???)


明天解决:

  SpringMVC参数的自动映射规则(就这么多吧)

 

 白天监考有点累呀,本来想回来就洗洗睡,但是想着昨天在上一篇文章中承诺今天去试着解决这些问题,瞬间感觉又有精神了(果然自己还是要多给自己挖坑,哈哈,开心的埋自己),虽然没有很透彻的理解,但是至少是有一点进步的,这就足以,每天进步一点点,加油mm!!!

2017/9/3 22:58


原创粉丝点击