个人博客开发记录-遇到的问题
Request method 'GET' not supported
在写controller的时候遇到的问题
@PostMapping("/login")
public String login(@RequestParam(required = false) String username,
@RequestParam(required = false) String password,
HttpSession session,
RedirectAttributes attributes) {
User user = userService.checkUser(username, password);
if (user != null) {
user.setPassword(null);
session.setAttribute("user",user);
return "admin/index";
} else {
attributes.addFlashAttribute("message", "用户名和密码错误");
return "redirect:/admin";
}
}
运行之后会报错需要将PostMapping改为RequestMapping则可以解决
原因分析:
关于post和get的区别:
get请求就是url中可以看见你的用户名和密码,而post更为安全,看不见用户名和密码.本质上都是Tcp链接,并无区别
但是get会产生一个数据包,而post则会产生两个数据包
get是将请求头和data一起发送过去,服务器响应200
post则是先将请求头发送,服务器响应100,然后在发送数据,响应200,返回数据
Required request parameter 'username' for method parameter type String is not present
在写controller的时候遇到的问题
@RequestMapping("/login")
public String login(@RequestParam() String username,
@RequestParam() String password,
HttpSession session,
RedirectAttributes attributes) {
User user = userService.checkUser(username, password);
if (user != null) {
user.setPassword(null);
session.setAttribute("user",user);
return "admin/index";
} else {
attributes.addFlashAttribute("message", "用户名和密码错误");
return "redirect:/admin";
}
}
运行之后报错,需要将@RequestParam删除则可以解决
原因分析
两者的区别
@RequestMapping("/list")
public String test(int userId) {
return "list";
}
@RequestMapping("/list")
public String test(@RequestParam int userId) {
return "list";
}
区别:
- 不加的话参数为非必传,就和加了required=false一样,第二种是参数必须传,参数名字为userId
- 第二种可以通过@RequestParam("userId")或@RequestParam(value = "userId")指定参数名。

浙公网安备 33010602011771号