3.Spring MVC @RequestMapping注解

使用@RequestMapping映射请求

  • Spring MVC 使用@RequestMapping 注解为控制器指定可以处理那些URL请求
    在控制器的类定义及方法定义处都可以标注
    @RequestMappin
  • 类定义处:提供初步的请求映射信息。相对于WEB应用的根目录
  • 方法处:提供进一步的细分映射信息。相对于类定义处的URL。若类定义处没有标注@RequestMapping,则方法处标记URL相对于WEB应用的根目录
  • DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法
package com.gu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by gurongkang on 17/5/8.
 */
@Controller
@RequestMapping("/controller")
public class HelloController {

  /**
   * 1.使用RequesMapping注解来映射请求URL
   * 2.返回值通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver
   * 视图解析器会做如下解析
   * 通过prefix + returnVal + suffix 得到物理视图
   */
  @RequestMapping("/hello")
  public String sayHello() {
    return "Hello";
  }

}

请求地址为 http://localhost:8080/controller/hello

映射请求参数、请求方法或请求头

  • @RequestMapping除了可以使用请求URL映射请求外,还可以处理请求方法、请求参数、以及请求头映射请求。
  • @RequestMapping的value、method、params、以及heads分别表示请求URL、请求方法、请求参数及请求头的映射条件,它们之间是与的关系,联合多个条件可让请求映射更加精确化。
  • 映射请求方法
package com.gu.controller;

import org.omg.CORBA.Request;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Created by gurongkang on 17/5/8.
 */
@Controller
@RequestMapping(value = "/controller", method = RequestMethod.POST)
public class HelloController {

  /**
   * 1.使用RequesMapping注解来映射请求URL
   * 2.返回值通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver
   * 视图解析器会做如下解析
   * 通过prefix + returnVal + suffix 得到物理视图
   */
  @RequestMapping("/hello")
  public String sayHello() {
    return "Hello";
  }
}

测试代码



Hello World!

<%--@RequestMapping 确定请求方式--%>

open get

get请求失败

3.Spring MVC @RequestMapping注解_第1张图片
请求出错.png

源码 https://github.com/gurongkang/TestSpringMVC.git tag 2

你可能感兴趣的:(3.Spring MVC @RequestMapping注解)