zoukankan      html  css  js  c++  java
  • 0054 Spring MVC的@Controller和@RequestMapping注解

    @Controller注解

    该注解用来指示一个类是一个控制器,在Spring的配置xml文件中开启注解扫描

    <context:conponent-scan base-package="包路径" />
    

    后,DispatcherServlet会扫描使用该注解的类的方法,再检测是否使用了@RequestMapping注解,使用了该注解才会将处理方法映射到对应的请求上

    类似于@Controller的注解还有这些:
    @Controller:表明这是一个控制器组件
    @Service:表明这是一个业务组件,一个请求往往需要服务器进行很多个操作,这些操作就集中放在一个service里面,给controller调用
    @Repository:表明这是一个持久化组件,就是跟数据库打交道的
    @Component:其他组件

    使用@Controller注解的类,不需要实现Controller接口,不需要重写ModelAndView handleRequest(request,response)方法,返回值也一定是ModelAndView,参数也可以是其他

    请求处理方法值可以是:
    ModelAndView
    Model
    Map<k,v>
    View
    String
    HttpEntity或者ResponseEntity
    Callbale
    DeferredResult
    void

    请求处理方法的参数可以是:
    HttpServletRequest、HttpServletResponse、HttpSession
    Model、ModelMap
    WebRequest、NativeWebRequest
    Locale
    InputStream、Reader
    OutputStream、Writer
    Principal
    HttpEntity
    Map
    RedirectAttributes
    Errors
    BingdingResult
    SessionStatus
    UriComponentBuilder
    注解:@PathVariable、@MatrixVariable、@RequestParam、@RequestHeader、@RequestBody、@RequestPart

    @RequestMapping注解

    这个注解可以用在类和方法上
    用在类上面:表示这个类下面的方法都映射到该注解的value属性所指定的路径下。

    该注解有几个属性:
    value:默认属性,映射一个请求到一个方法上
    method:表明给方法只处理指定的请求。省略则表示可处理任意http请求。RequestMethod.POST(.GET;.HEAD;.PUT;.PATCH;.DELETE;.OPTIONS;.TRACE)
    consumes:指定处理请求的提交内容类型。也就是Http请求的Content-Type字段
    produces:指定返回的内容类型,返回的类型比如是请求头的Accept中所包含的类型
    params:指定请求中必须包含某些参数值时,才让该方法处理。比如@RequestMapping(params="k1=v2"),表示请求中包含k1=v2的请求才交由该方法处理
    headers:表示请求中必须包含某些特定的header值,才让该方法处理。


    其他:
    关于Spring MVC的控制器,@RequestMapping注解,这篇博文写得比较详细,可以仔细看看:http://www.cnblogs.com/best/p/5659596.html

  • 相关阅读:
    Prim+堆优化
    Tarjan缩点+建新图
    CF482A
    CF545C
    CF570B
    Python 入门2 list介绍
    Python 入门1 上传代码
    黑客与画家 第十三章
    黑客与画家 第十一章
    黑客与画家 第五章
  • 原文地址:https://www.cnblogs.com/sonng/p/6640343.html
Copyright © 2011-2022 走看看