Whitelabel Error Page(2)之Internal Server Error

来源:互联网 发布:图片叠加软件 编辑:程序博客网 时间:2024/05/18 10:55

    • Whitelabel Error Page
      • 功能
      • 访问路劲url
      • 出错原因
      • 实例如下
      • 代码块
      • 代码解释
      • 错误总结

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:admin

map:
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. 前台页面传入的数据与后台代码不吻合。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 车辆没有年检出了交通事故怎么办 跟着大货车闯了红灯怎么办 在万家金服买的电子产品坏了怎么办 汽车被油笔画了怎么办? 挂到别人车跑了怎么办 浪琴手表保修卡掉了怎么办 事故车辆维修和报废怎么办 4.2货车拉缸了怎么办 工作中与同事发生矛盾怎么办 和领导关系闹僵怎么办 内倒窗户卡住了怎么办 支付宝存在安全风险怎么办 地铁车站空调坏了怎么办 面试防汛值班发生灾情你怎么办 怀孕上班路途太远怎么办 硕士错过校招应该怎么办 收银员收多了钱怎么办 商铺贷款批不了怎么办 铁路局的门面乱收房租怎么办 酒店夜审房费多过怎么办 夜审房价录多了怎么办 做工地拿不到钱怎么办 赢了官司拿不到钱怎么办 工地上拿不到钱怎么办 做了工拿不到钱怎么办 高速公路上车没油了怎么办 高铁乘务员年龄大了怎么办 总公司跑路了分公司怎么办 坐车久了耳朵懵怎么办 过完隧道耳朵疼怎么办 护照还在大使馆需要出国怎么办 护照在大使馆不返回怎么办 美国面签迟到了怎么办 成都美签迟到了怎么办 签证电调没人接怎么办 单位没有抬头纸怎么办在职证明 出国签证无银行流水怎么办 铁路职工得癌症后工作怎么办 去泰国不会泰语和英语怎么办 签证状态一直没有更新怎么办 简理财不能身份信息确认怎么办