springboot controller

SpringBoot框架

一般分为View层、Controller层、Service层、Mapper层、pojo层。

View层:视图层,根据接到的数据展示页面给用户

Controller层:响应用户需求,决定用什么视图,需要准备什么数据来显示。Controller层负责前后端交互,接收前端请求,调用Service层,接收Service层返回的数据,最后返回具体的数据和页面到客户端

Service层:Service层也可以分为三个方面

  (1)接口:用来声明方法

  (2)继承实现接口

  (3)impl:接口的实现(将mapper和service进行整合的文件)

Service层存放业务逻辑处理,有一些关于数据库处理的操作,但是不是直接和数据库打交道,有接口,也有接口的实现方法,在impl实现接口类中需要导入mapper类,mapper层是直接与数据库进行操作的。

Mapper层:也可以称为DAO层,是数据库CRUD的接口,只有方法名,具体实现在mapper.xml文件中,对数据库进行数据持久化操作(把数据放到持久化的介质中,同时提供CRUD操作)

src/main/resource文件夹中的mapper.xml文件,里面存储的是真正的数据库CRUD语句

Pojo层:存放实体类,与数据库中的属性基本保持一致,一般包括getter、setter、toString方法(未使用插件lombok的情况下)。

原文链接:https://blog.csdn.net/huzia/article/details/124343901
springboot controller_第1张图片

controller

@Controller 和@RestController两种注解来表示此类负责接收和处理http请求。
@Controller会返回一个页面,前后端不分离,所以该注解不推荐使用。

@Controller
public class HelloController{
	@RequestMapping("/hello")
	public String index(ModelMap map){
			map.addAttribute(attributeName:"name",attributeValue:"zhangsan");
			return "hello"
}
}

RestController

返回的对象数据转为JSON格式,@RequestMapping可以添加在CONTROLLER类上

@RestController注解有两个目的。首先他是一个类似于@controller和@Service的构造型注解,能够让类被组件扫描功能发现。但是,与REST最相关在于@RestController会告诉Spring,控制器中所有的处理器方法的返回值都要直接写入响应体中,而不是将值放到模型中并传递给一个视图以便于渲染。
作为替代方案就是@Controller加上@Response。

让类变成控制器,能够开始接收客户端的请求了,具体怎么接收,在类里写好方法。

GetMapping

用get访问这个方法,需要写好连接地址

@GetMapping("/hello")
即在这个地方接收get请求http://localhost:8080/hello

@RequestMapping(value = "/hello",method = RequestMethod.GET)
这两个方法相同的意思,都是只能接收get

POST

首先安装软件APIPOST

@RestController
public class HelloController {
    //http://localhost:8080/hello
    //http://localhost:8080/hello?nickname=zhangsan
    //http://localhost:8080/hello?nickname=zhangsan&phone=123

   // @GetMapping("/hello")
    @RequestMapping(value = "/hello",method = RequestMethod.POST)

    public String hello(){
        return "POST请求";
    }}

springboot controller_第2张图片
如图所示正确接收到post请求

传递参数

springboot controller_第3张图片

@RestController
public class HelloController {
    //http://localhost:8080/hello
    //http://localhost:8080/hello?nickname=zhangsan
    //http://localhost:8080/hello?nickname=zhangsan&phone=123

   // @GetMapping("/hello")
    @RequestMapping(value = "/hello",method = RequestMethod.POST)

    public String hello(String username,String password){
        System.out.println(username);
        System.out.println(password);
        return "POST请求";
    }

}

springboot controller_第4张图片

写入user类中

package com.example.helloworld2.entity;

public class User {
    private String username;
    private String password;
    public String getUsername(){
        return username;
    }
    public void setUsername(String username){
        this.username=username''
    }
    public  String getPassword(){
        return password;
    }
    public void setPassword(){
        this.password=password;
    }
    @Override
    public String toString(){
        return "User{" + "username='" + username + '\'' + "password='" +password + '\'' + '}';
    }
}

注意:第一次用这个类,需要用alt+shift+enter进行导入这个user类生效,否则报错哟

package com.example.helloworld2.controller;

import com.example.helloworld2.entity.User;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {
    //http://localhost:8080/hello
    //http://localhost:8080/hello?nickname=zhangsan
    //http://localhost:8080/hello?nickname=zhangsan&phone=123

   // @GetMapping("/hello")
    @RequestMapping(value = "/hello",method = RequestMethod.POST)
//注意:第一次用这个类,需要用alt+shift+enter进行导入这个user类生效,否则报错哟
    public String hello(User user){
        System.out.println(user);

        return "POST请求";
    }

}

springboot controller_第5张图片

json类型的post

springboot controller_第6张图片

package com.example.helloworld2.controller;

import com.example.helloworld2.entity.User;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {
    //http://localhost:8080/hello
    //http://localhost:8080/hello?nickname=zhangsan
    //http://localhost:8080/hello?nickname=zhangsan&phone=123

   // @GetMapping("/hello")
    @RequestMapping(value = "/hello",method = RequestMethod.POST)

    public String hello(@RequestBody User user){
        System.out.println(user);

        return "POST请求";
    }

}

你可能感兴趣的:(java,spring,boot,后端,java)