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>
複製程式碼