此bug由文章 Whitelabel Error Page(2)之Internal Server Error延伸而来的,请先查看此文章。
代码块
@RestController
@RequestMapping(value = "/login")
public class Login {
private String username = "admin";
private String password = "123";
@RequestMapping(value = "")
public JsonResult getStatus(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String,String> map){
if(map.get("username").equals(username) && map.get("password").equals(password)){
System.out.println(".....1");
System.out.println(".....2");
System.out.println(".....3");
System.out.println(".....4");
System.out.println(".....5");
return new JsonResult(StatusCode.SUCCESS.getCode(),StatusCode.SUCCESS.getMessage());
}else{
return new JsonResult(StatusCode.ERROR.getCode(),StatusCode.ERROR.getMessage());
}
}
}
当访问路劲url正确时,debug调试参考IntelliJ IDEA Debug调试用法一
当访问路劲url错误时,debug调试会出现不同的运行效果,具体示例如下。
错误访问路劲:
1. debug启动应用程序
2. 设置断点在错误提示中的26行的if(map.get(“username”).equals(username) && map……
3. 页面访问路劲
4. 查看IDEA控制台debug输出
4.1图片
在debug的输出中,很明显map中存的是pass不是password,必然map.get(“password”)报空指针异常。
此时就停止debug运行,再继续运行也没啥意义。