1、在web.xml中配置前端控制器,攔截請求,然后配置加載SpringMVC的配置文件(處理器映射器、處理器適配器、視圖解析器等)
<!-- springmvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
contextConfigLocation配置springmvc加載的配置文件(配置處理器映射器、適配器等等)
如果不配置contextConfigLocation,默認加載的是/WEB-INF/servlet名稱-serlvet.xml(springmvc-servlet.xml)
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
第一種:*.action,訪問以.action結尾 由DispatcherServlet進行解析
第二種:/,所以訪問的地址都由DispatcherServlet進行解析,對于靜態文件的解析需要配置不讓DispatcherServlet進行解析, 使用此種方式可以實現 RESTful風格的url
第三種:/*,這樣配置不對,使用這種配置,最終要轉發到一個jsp頁面時,
仍然會由DispatcherServlet解析jsp地址,不能根據jsp頁面找到handler,會報錯。
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
2、設置基于注解的處理器映射器和適配器
- 在Spring3.1之后使用注解映射器
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
- 在Spring3.1之后使用注解映射器
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
3、使用 mvc:annotation-driven可以代替注解映射器和注解適配器配置
<!--注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注解適配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!--
mvc:annotation-driven默認加載很多的參數綁定方法,比如json轉換解析器就默認加載了,
如果使用mvc:annotation-driven不用配置上邊的兩句,實際開發時使用mvc:annotation-driven
-->
<mvc:annotation-driven></mvc:annotation-driven>
4、開發注解Handler
使用 @Controller 標識它是一個控制器(處理器),使用 @RequestMapping 實現控制器中的方法和訪問時的url之間的映射,使用基于注解的處理器映射器不需要在xml中配置url和Handler的映射關系。
5、在spring容器中(xml文件)加載Handler
<!-- 對于注解的Handler可以單個配置 實際開發中建議使用組件掃描 -->
<!-- <bean class="cn.ssm.controller.XXXX" /> -->
<!-- 可以掃描controller、service、... 掃描controller,指定controller的包 -->
<context:component-scan base-package="cn.ssm.controller"></context:component-scan>
6、配置視圖解析器
<!--
視圖解析器 解析jsp解析,默認使用jstl標簽,classpath下的得有jstl的包
這樣配置以后 控制器中的ModelAndView.setViewName("")時就無需指定前后綴了
-->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置jsp路徑的前綴 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 配置jsp路徑的后綴 -->
<property name="suffix" value=".jsp"/>
</bean>