码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc 前端控制器,映射器,适配器,视图解析器

时间:2015-08-08 10:37:02      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:spring mvc

1.前端控制器DispatcherServlet的配置,在web.xml进行配置即可跟servlet的配置方式相同

1)contextConfigLocation配置sprimgmvc加载的配置文件(配置处理器映射器,适配器等等)如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-servlet.xml(springmvc-servlet.xml)
2)

第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
第二种:/所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析,此种方式可以实现RESTful风格的url
第三种:/*这样配置不对,使用这种配置最终要转发到一个jsp页面的时候,任然由DispatcherServlet解析jsp地址,不能根据
jsp页面找到handler,这种方式是错误的

<servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- contextConfigLocation配置sprimgmvc加载的配置文件(配置处理器映射器,适配器等等)
  		如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-servlet.xml(springmvc-servlet.xml)
  	 -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  </servlet>	
  <servlet-mapping>
  <!-- 
  	第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
  	第二种:/所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析,
  	此种方式可以实现RESTful风格的url
  	第三种:/*这样配置不对,使用这种配置最终要转发到一个jsp页面的时候,任然由DispatcherServlet解析jsp地址,不能根据
  	jsp页面找到handler,这种方式是错误的
   -->
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
对于DispatcherServlet我们可以关联源代码:

技术分享

技术分享技术分享

以上关联源代码:可以得出结论:DispatcherServlet其实是间接的继承了HttpServlet类的,因此我们可以说DispatcherServlet就是一个servlet,这同时也说明了springmvc是一个单例模式的框架(因为servlet是单例的).

2.在springmvc.xml中进行配置处理器映射器

<!--1. 配置处理器映射器  根据名字可知,是根据bean中的name属性查找url,因此需要在配置handler的时候配置name属性-->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
        <!--2.配置简单处理器映射器 -->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        	<property name="mappings">
        		<props>
        			<!-- key就是配置的映射路径  这时候处理器hander必须指定id-->
        			<prop key="queryItems1.action">itemController1</prop>
        			<prop key="queryItems2.action">itemController2</prop>
        		</props>
        	</property>
        </bean>
3.配置处理器适配器

<!-- 1.配置处理器适配器 ,要求核心handler必须实现controller接口-->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
        <!-- 2.配置处理器适配器 -->
        <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
关联源代码:

技术分享技术分享

4.配置handler

<!-- 配置handler -->
        <bean  name="/queryItems.action" class="cn.itcast.ssm.controller.ItemController1"></bean>
        <bean id="itemController2"  class="cn.itcast.ssm.controller.ItemController2"></bean>
第一个itemController1是根据映射器配置的第一种方式查找url,这要求必须要设置name属性

第二个itemController2配置了id属性是根据第二个映射器方式查找url,在处理器映射器中已经配置key的属性就是url

5.配置视图解析器

<!-- 配置视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
这个视图解析器解析的是jsp页面

版权声明:本文为博主原创文章,未经博主允许不得转载。

springmvc 前端控制器,映射器,适配器,视图解析器

标签:spring mvc

原文地址:http://blog.csdn.net/u014010769/article/details/47354709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!