配置分发器
DispatcherServlet 是 Spring MVC 的入口
所有进入 Spring Web 的 Request 都经过 DispatcherServlet
需要在 web.xml 中注册 DispatcherServlet

<servlet><br><servlet-name>dispatherContext</servlet-name><br><servlet-class><br> org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.DispatcherServlet <br></servlet-class><br><load-on-startup>1</load-on-startup><br></servlet>



加载 DispatcherServlet 时 Spring 会尝试读取 配置文件
默认的 配置文件位于 web.xml 相同的路径下 文件名与注册的 Servlet
名有关 Servlet注册名跟上 -servlet.xml
例如:上面的 Servlet 注册名为 dispatcherContext 那么 默认的
配置文件名位:dispatcherContext-servlet.xml

当然 也可以明确 配置文件 需要在注册 servlet 时 设定初始化参数

<init-param><br><param-name>contextConfigLocation</param-name><br><param-value><br><!-- <SPAN class=hilite3><FONT style="BACKGROUND-COLOR: #aaffaa">配置</FONT></SPAN>文件名 --><br></param-value><br></init-param>



注册 DispatcherServlet 后 还应指定有 Spring 处理的 url 模板

<servlet-mapping><br><servlet-name>dispatherContextServlet</servlet-name><br><url-pattern>*.do</url-pattern><br></servlet-mapping>



这样 请求 .do 的处理 就全部交由 Spring 处理了

当程序越来越大 配置文件中的 <bean> 越来越多 而且变得关系错综复杂 <br>难于维护 此时应该考虑 将<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件拆分成多个 <br>为了让 <span ><font style="BACKGROUND-COLOR: #ffff00">Spring</font></span> 能够读到这些<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件 并察觉到他们的变化 <br>需要注册<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件读取器 <br>对于 Servlet 2.3 以上标准 且 web 容器支持监听器 <br>可以 在 web.xml 中注册监听 <br><listener><br><listener-class><br> org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.context.ContextLoaderListener <br></listener-class><br></listener><br><br>对于 Servlet 2.3 以下版本 由于不支持监听器 所以需要注册 Servlet <br><servlet><br><servlet-name>contextLoader</servlet-name><br><servlet-class><br> org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.context.ContextLoaderServlet <br></servlet-class><br><load-on-startup>1</load-on-startup><br></servlet><br><br><span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件读取器 注册成功后 需要设定<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件列表 <br>设置全局参数 contextConfigLocation  <br>置为 <span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>文件列表 以逗号分隔 注意路径 <br><context-param><br><param-name>contextConfigLocation</param-name><br><param-value><br> /WEB-INF/dispatcherContext-servlet.xml, <br><!-- classpath*: 指定编译后的class目录 在ide中 与src根目录相同 --><br> classpath*:hibernateContext.xml <br></param-value><br></context-param><br><br>

二,<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>映射响应器(HandlerMapping) <br>当 DispatcherServlet 接到请求后 会向 HandlerMapping 询问 <br>请求所对应的控制器 <br>BeanNameUrlHandlerMapping <span ><font style="BACKGROUND-COLOR: #ffff00">Spring</font></span> 默认的映射响应器 根据 <bean> 的 name 属性查找控制器处理请求 <br><bean id="urlMapping">class="org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler.BeanNameUrlHandlerMapping" /&gt; <br><br>SimpleUrlHandlerMapping <span ><font style="BACKGROUND-COLOR: #ffff00">Spring</font></span> 中最常用的映射响应器 通过对其 mappings 进行设置 从而获得更为灵活的 <br>控制器查找机制 <br><bean id="urlMapping">class="org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler.SimpleUrlHandlerMapping"&gt; <br><property name="mappings"><br><props><br><prop key="/&lt;!-- url 模板 --&gt;.do"><!-- 控制器 <bean> 的 id --></prop><br></props><br></property><br></bean><br><br>CommonsPathMapHandlerMapping 应用了 jdk1.5 后的新特性 通过 Controller 中的注释 进行映射 <br>在类的主是中加入

@@org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler.commonsattributes.PathMap("/path.do") <br><bean id="urlMapping">class="org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler.metadata.CommonsPathMapHandlerMapping" /> <br><br>

三,<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>控制器(Controller) <br>当 DispatcherServlet 接到请求后 通过 HandlerMapping 询问请求所对应的处理控制器后 <br>在 dispatcherContext-servlet.xml 中 查找相对应得 <bean> 处理请求 <br><br>当选用了 BeanNameUrlHandlerMapping 映射响应器时 各个处理控制器应保证 <bean> 的 name <br>属性即为请求的 url 模板 例如: <br><bean name="/home.do" class="&lt;!-- 包名 --&gt;.HomeController"></bean><br><br>当选用了 SimpleUrlHandlerMapping 映射响应器时 各个处理控制器应保证 <bean> 的 id <br>属性与 SimpleUrlHandlerMapping 中的 mappings 对应 例如: <br><bean id="homeAction" class="&lt;!-- 包名 --&gt;.HomeController"></bean><br><br><bean id="urlMapping">class="org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler.SimpleUrlHandlerMapping"&gt; <br><property name="mappings"><br><props><br><prop key="/hello.do">homeAction</prop><br></props><br></property><br></bean><br><br>当选用了 CommonsPathMapHandlerMapping 映射响应器时 <br>/** <br>* @@org.<span ><font style="BACKGROUND-COLOR: #ffff00">spring</font></span>framework.web.servlet.handler. <br> commonsattributes.PathMap("/hello.do") <br>*/ <br>public class HelloController <br> extends AbstractCommandController { <br>... <br>} <br><br><br>

四,<span ><font style="BACKGROUND-COLOR: #aaffaa">配置</font></span>试图解析器(ViewResolver)

<br><bean id="viewResolver" class="org.<SPAN class=hilite1><FONT style=" background-color:>springframework.web.servlet.view.InternalResourceViewResolver"> <br><property name="viewClass" value="org.<SPAN class=hilite1><FONT style=" background-color:>springframework.web.servlet.view.JstlView"/> <br><property name="prefix" value="/WEB-INF/jsp/"></property><br><property name="suffix" value=".jsp"></property><br></property></bean></bean></bean></bean></bean></bean></bean></bean>