您的位置:首页 > 其它

09.02 问题解决(初步)

2017-09-03 22:30 148 查看
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.class(Spring3.1前使用)

                              org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.class(Spring3.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐