Springboot+Vue(一)
Springboot Controller
1.Web依赖整合了mvc、json、tomcat等框架,简化了Web应用的配置
2.用户向Controller发送请求,从数据库中获取到的数据存在Model中
当用户发出请求后,Controller向Model请求数据,响应之后返回到View
,通过HTTP响应给用户,这就是MVC
有个区别记录一下 @RestController和@Controller的区别
@RestController用于单纯请求数据,返回的是数据
@Controller用于请求页面和数据,这意味着你返回的必须是一个页面
因此不适合前后端分离的开发,因此在老师的课程中主要提及的还是前者
在默认情况下,@RestController会把返回的数据转会为JSON格式
控制器如何接收前端请求?
通过路由映射 即@RequestMapping,这个注解负责做URL的路由映射
可以放到Controller类或者方法上
例如 RequestMapping("/hello");
其中有一个value属性说一下
value属性用于请求URL的路径
例如RequestMapping("/user") 也可以是多级的
然后单独解释一下RequestMapping("/getJson/*.json")
一个*代表 只要是在getJson下的任意名称的.json文件可以进行映射
如果是**则匹配任意路径。
Method匹配
@RequestMapping可以规定访问的方法,例如规定GET方法等
@RequestMapping(value = "/hello",method = RequestMethod.GET)
当你这么规定了之后,只有GET请求才可以访问该方法
它等价于
@GetMapping("/hello")
前端内容的接收
可以在访问的时候通过问号给值,例如访问localhost:8080/hello
?nickname = zhangsan
这表示访问hello的时候提供了一个参数nickname,值为zhangsan
当这么做了之后页面是正常访问
@RequestParam
可以把请求的参数绑定到控制器的方法参数上
例如
@ResetController
public class Controller test
{
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(String nickname)
{
return "你好" + nickname;
}
当你传递的符号与请求的方法的参数一致时,会自动赋值
如果你有多个参数,可以使用&符号进行连接
}
当传递的参数和方法中定义的参数名称不一致时,可以使用@RequestParam注解
例如我前端传递了一个nickname而我方法中定义的参数名为name
@RequestMapping(value = "/test",method = RequestMethod.GET)
public String getTest(@RequestParam (value = "nickname") String name)
{
System.out.println("nickname :"+name);
return "GET";
}
但是当你用了@RequestParam注解,说明这个name参数是必须的,就是说你必须传递一个名为nickname的参数,如果不传递就无法访问对应的方法。
错误400
如果希望不传递也可以,那可以添加一个另外的设置
required = "false"
@RequestController
public class Controller test
{
@RequestMapping(value = "/test",method = RequestMethod.GET)
public String FalseTest(@RequestParam(value = "nickname",required = false)String name)
{
return "GET";
}
POST方法不能通过浏览器访问,提供的软件是Apipost
如果通过POST传递参数,传递的参数必须要和封装中的属性名保持一致
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步