zoukankan      html  css  js  c++  java
  • springMVC--4种映射处理器handlerMapping

    如何根据http请求选择合适的controller是MVC中一项十分关键的功能,在spring MVC中,
    HandlerMapping接口是这一活动的抽象。
    
    4种映射处理器handlerMapping:
    
    1. 根据controller的name名称来映射寻找controller
     BeanNameUrlHandlerMapping  (默认)
    
    
    1.1开启该映射:默认是开启的
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
     1.2定义bean的name属性:
    <bean id="helloController" name="/hello1.do" class="com.controller.HelloController"></bean>
     1.3界面访问URL:与bean的name属性值一致 
    http://localhost:5080/springmvc/hello1.do
    
    
    2.根据URL来映射寻找controller:推荐使用
    SimpleUrlHandlerMapping
    
    
    2.1开启该映射:
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     <property name="mappings">
     <props>
     <prop key="/hello2.do">HelloController</prop>
     </props>
     </property>
     </bean>
     2.2定义bean:
    <bean id="helloController" class="com.controller.HelloController"></bean>
     2.3界面URL访问:与prop的key属性值一致
    http://localhost:5080/springmvc/hello2.do
    
    优点:将controller定义与映射分离开,耦合性低。
    
    
    3.根据controller的类名来映射寻找controller:
    ControllerClassNameHandlerMapping 
    
    
    3.1开启类名映射处理器:
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
     3.2定义bean
     <bean id="hello3Controller" class="com.controller.Hello2Controller"></bean>
     3.3界面URL访问:与bean的id属性值无关。
    http://localhost:5080/springmvc/hello2.do   正确
    http://localhost:5080/springmvc/hello2Controller.do  正确
    http://localhost:5080/springmvc/hello21111.do  正确
    http://localhost:5080/springmvc/hello3.do 错误
     注意点:使用类名来访问一个Controller, 
    类名首字符要小写,后面要加.do (不建议使用)
    
    
    
    4.使用注解来映射寻找controller:
    DefaultAnnotationHandlerMapping
    
     DefaultAnnotationHandlerMapping和RequestMappingHandlerMapping都是处理requestMapping的注解,
     前者以废弃,不建议使用,后者用来代替前者
    
    
    1.开启注解扫描组件:
    作用:当我加载配置文件时,到我们指定的包下扫描(读取)Java文件,
    寻找标注注解的地方(接口,类,方法或者其他),进行完成初始化。
    <beans>
    
    <!--配置扫描使用注解的包路径  -->
     <context:component-scan base-package="com"></context:component-scan>
     <!--开启springMVC注解  -->
     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  
     <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>  
    </beans>
    
    
     2.在类上标记:@Controller 声明该类是一个springMVC Controller
     3.在方法上使用:@RequestMapping("/login") 声明该方法处理哪一个请求
    eg:
     @Controller
     public class Login {
    
    @RequestMapping("/login")
      public ModelAndView login(){
     ModelAndView mv = new ModelAndView();
     mv.setViewName("login");
     return mv;
    
     }
    } 
    

     https://blog.csdn.net/xinruyulu/article/details/62883386

  • 相关阅读:
    【初心】
    【杂题集】单题小总结
    【模板】(旧)矩阵模板
    【机智题?】【Vijos】【天平称量】
    【杂题集】【51NOD 1267】4个数和为0
    【模板】(旧)Miller Rabin 素数判定
    【杂谈】只是想想
    【杂谈】思考
    【学习?】组合和排序
    【模版】读入优化
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4463240.html
Copyright © 2011-2022 走看看