Whitelabel Error Page(2)之Internal Server Error
来源:互联网 发布:图片叠加软件 编辑:程序博客网 时间:2024/05/18 10:55
- Whitelabel Error Page
- 功能
- 访问路劲url
- 出错原因
- 实例如下
- 代码块
- 代码解释
- 错误总结
- Whitelabel Error Page
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.Thu Sep 07 17:27:34 CST 2017There was an unexpected error (type=Internal Server Error, status=500).No message available
功能:
从页面的url中手动输入用户名和密码,来验证是否可以登录
url:
http://localhost:8080/status?username=需要手动输入的值&password=需要手动输入的值
访问路劲url
http://localhost:8080/status?username=admin&pass=123
出错原因
url中传入的参数pass应该改为password,正确的url如下:
http://localhost:8080/status?username=admin&password=123
实例如下:
正确的url:
http://localhost:8080/status?username=admin&password=123
返回我们想看到的200成功的页面:
不正确的url(1) —– 传入的参数password写成pass
http://localhost:8080/status?username=admin&pass=123
返回我们很害怕的错误页面
不正确的url(2) —– 密码错误导致的404错误页面
http://localhost:8080/status?username=admin&password=1
返回我们不喜欢的404错误页面
代码块
@RestController@RequestMapping("/status")public class StatusController { 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)){ return new JsonResult(StatusCode.SUCCESS.getCode(),StatusCode.SUCCESS.getMessage(),new Date()); }else{ return new JsonResult(StatusCode.ERROR.getCode(),StatusCode.ERROR.getMessage(),new Date()); } }}
代码解释:
1. 根据以上代码块,可以看出在访问的路劲url中的参数username和password将会传给后台的代码,而后台是以map来存储前台传入的参数username和password
2. 就是说,我们在页面输入的username=某个值和passowrd=某个值将会存到map中,而当我们获取这些值需要从map中来获取
3. 由于map是以键值对存储的,就是说url访问路劲中username=admin,那么key存的是username这个变量名,而value存的是admin。即
map:
key: username
value:adminmap:
key:password
value:123
所以当我们访问url时,url中传入的参数变量名必须与代码中get获取的key变量名相等(map.get(“username”)),即在http://localhost:8080/status?username=admin&password=123 中的username和password不能随便乱写,是代码中定义好的,否则报服务器内部错误,即代码问题
4. 当访问url时,type = Internal Server Error,在后台IDEA 也会看到运行时错误信息,如下:
空指针异常,这种错误就是对象为null,所以从报错提示中的代码行可以判断为null的对象有三个可能性。
1. map
2. map.get(“username”)
3. map.get(“password”)
map不可能为null,map是接口,直接可以调用方法
map.get(“username”),查看访问路劲url,有username字段,所以也不可能为Null
map.get(“password”),查看访问路劲url*,没有password字段,只是有pass字段,所以map.get(“password”)为null
if(map.get("username").equals(username) && map.get("password").equals(password)){
判断空指针异常第二种方法 – debug
设置断点
参考:IntelliJ IDEA Debug调试案例一
错误总结
type=Internal Server Error 这种错误后台运行时会报错
type=Internal Server Error 出现的可能性:
1. 代码的问题,需要修改代码。
2. 前台页面传入的数据与后台代码不吻合。
- Whitelabel Error Page(2)之Internal Server Error
- Whitelabel error page问题
- Whitelabel Error Page
- Whitelabel Error Page
- Whitelabel Error Page
- Whitelabel Error Page
- 笔记--Whitelabel Error Page
- Whitelabel Error Page异常
- 处理Whitelabel Error Page
- Whitelabel Error Page
- Whitelabel Error Page(1)之 Not Found
- Whitelabel Error Page(3)之 Not Found
- springboot异常之Whitelabel Error Page解决办法
- SpringBoot爬坑记之Whitelabel Error Page
- 【JavaEE】邮箱附件下载(whitelabel Error Page)
- SpringBoot接口服务处理Whitelabel Error Page
- SpringBoot报错Whitelabel Error Page
- spring boot: Whitelabel Error Page的解决方案
- chapter14_4重映射—remap()
- Vue.js(菜鸟自学)
- SQLite数据类型
- Codeforces 854 A Fraction
- 【知了堂学习笔记】JfreeChart制作一些简单的报表
- Whitelabel Error Page(2)之Internal Server Error
- struts2中 ServletActionContext与ActionContext区别
- Swift中懒加载
- CGlib动态代理中Enhancer.create()函数的逻辑
- 线性时间排序
- 虚拟机中linux系统启动的tomcat无法在本机访问的问题
- 缓存穿透与缓存雪崩
- 软件测试知识点
- 直方图均衡化