Spring Boot第八篇-第九篇 数据请求和数据处理

本文详细介绍了在Springboot中如何使用@RequestMapping、@GetMapping、@PostMapping和@PathVariable处理HTTP请求,以及@Controller与@RestController的区别,重点在于API设计和视图返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.测试环境:JDK1.8+Spring boot+idea

2.@RequestMapping注解

 @RequestMapping("/employ/show")
    public String show(Model model){
        Collection <Employee> all = employeeDao.getAll ( );
        model.addAttribute ( "employ",all );
        //返回到emp/list界面,前提是emp文件夹下要收录list.html
        //此外return回送的也可以是@RequestMapping相应的http请求
        return "emp/list";
    }

在服务器端,/被解析成http://localhost8080/,故该段代码中的请求是http://localhost8080/employ/show

3.@GetMapping注解

@GetMapping("/emp/{id}") //从路径中取参
    public String toUpdate(@PathVariable("id")Integer id, Model model){
        Employee employee = employeeDao.getEmployById ( id );
        Collection <Department> departments = departmentDao.getDepartments ( );
        model.addAttribute("emp",employee);
        model.addAttribute ( "departments",departments );
        return "emp/update";
    }

当从路径在取参数时,要注意以下几个部分:

1. {}的使用,而且请求不能是post请求

2.要使用@PathVariable("id")表明自己路径中的参数

3.此处的return 返回的仍然是update界面

4.@PostMapping

    @PostMapping("/toupdate")
    public String Update(Employee employee){
        employeeDao.save(employee);
        //此处return 返回的是/employ/show的HTTP请求,即重定向
        return "redirect:/employ/show";
    }

redirect是在response时使用的,在request采用的是forword转发。

表单请求必须使用post请求,不然会造成个人信息泄露,也可以采用重定向进行解决。

5.运用上述注解时,要在类的上面加上@Controller注解,此外还有类似@RestController注解

二者的区别:

1.@RestController注解相当于@ResponseBody + @Controller

2.@RestController注解,则Controller中的方法无法返回jsp页面或者html,return内容即是json的数据

3.@Controller注解能够配合视图解析器返回数据,如果需要重定向页面,则需要使用Controller

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amo@骄纵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值