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>