springMVC对于get和post请求的处理

自己整理了下各种注解请求

@RestController
@RequestMapping("/test")
public class TestController {

    // application/x-www-form-urlencoded
    // 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);

    //multipart/form-data
    // 不能处理(即使用@RequestBody不能处理这种格式的数据);

    //其他格式
    // 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

    /**
     * 普通请求
     *
     * http://localhost:8089/test/test1
     */
    @RequestMapping(value = "/test1")
    public String test1() {
        return "test1";
    }

    /**
     * 简单get请求
     * 组合注解 @GetMapping
     * 是@RequestMapping(method = RequestMethod.GET)的缩写
     *
     * http://localhost:8089/test/test2/sun
     */
    @GetMapping(value = "test2/{name}")
    public String test2(@PathVariable String name) {
        // \n不起作用了,那就直接用html中的标签吧
        return "oh you are " + name + "
nice to meet you"; } /** * 简单get请求2 * 注解 @PathVariable 映射URL绑定的占位符 * 1)带占位符的URL是Spring3.0新增的功能,该功能在SpringMVC向REST目标挺进发展过程中具有里程碑的意义。 * 2)通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中: * URL中的{xxx}占位符可以通过@PathVariable("xxx")绑定到操作方法的入参中 * * http://localhost:8089/test/test3/admin&admin */ @GetMapping(value = "/test3/{name}&{pwd}") public String test3(@PathVariable String name, @PathVariable String pwd) { if (name.equals("admin") && pwd.equals("admin")) { return "hello welcome admin"; } else { return "oh sorry user name or password is wrong"; } } /** * get请求 * 注解 @RequestParam绑定请求参数值 * 在处理方法入参使用@RequestParam可以把请求参数传递给请求方法,@RequestParam包含的属性值: * --- value :参数名称 * --- required :是否必须,默认为true,表示请求参数中必须包含对应的参数,否则抛出异常。 * --- defaultValue:当请求参数缺少或者有请求参数但值为空时,值采用该设置值 * * http://localhost:8089/test/test4?name=111&pwd=111 */ @RequestMapping(value = "/test4", method = RequestMethod.GET) public String test4(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "pwd", required = true) String pwd) { if (name.equals("admin") && pwd.equals("admin")) { return JSON.toJSONString(Result.success()); } else { return JSON.toJSONString(Result.error()); } } /** * 简单post请求 * 组合注解 @PostMapping * 是@RequestMapping(method = RequestMethod.POST)的缩写。 * * http://localhost:8089/test/test5 */ @RequestMapping(value = "/test5", method = RequestMethod.POST) public String test5() { System.out.println("hello test5"); return "test5"; } /** * post请求 * * http://localhost:8089/test/test6?name=111&pwd=111 */ @RequestMapping(value = "/test6", method = RequestMethod.POST) public String test6(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "pwd", required = true) String pwd) { if (name.equals("admin") && pwd.equals("admin")) { return JSON.toJSONString(Result.success()); } else { return JSON.toJSONString(Result.error()); } } /** * 参数为一个bean对象.spring会自动为我们关联映射 * * get post * http://localhost:8089/test/test7?id=1 * * post form-data和 x-www-form-urlencoded * http://localhost:8089/test/test7 * id 1 */ @RequestMapping(value = "/test7", method = { RequestMethod.POST, RequestMethod.GET }) public String test7(BaseEntity entity) { if (null != entity && entity.getId() == 1) { return JSON.toJSONString(Result.success()); } else { return JSON.toJSONString(Result.error()); } } /** * 请求内容是一个json串,spring会自动把他和我们的参数bean对应起来 * 不过要加@RequestBody注解 * * post row(application/json) * http://localhost:8089/test/test8 * id 1 */ @RequestMapping(value = "/test8", method = { RequestMethod.POST, RequestMethod.GET }) public String test8(@RequestBody BaseEntity entity) { if (null != entity && entity.getId() == 1) { return JSON.toJSONString(Result.success()); } else { return JSON.toJSONString(Result.error()); } } }

你可能感兴趣的:(springMVC对于get和post请求的处理)