Java Web之基于注解的Spring MVC環境配置

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>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容