t1441332354
t1441332354
采纳率71.8%
2018-05-21 09:13 阅读 2.5k
已采纳

Java报空指针异常怎么处理

5

这是一个MD5的工具类

 public class MD5 {

    public static String getMD5(String str){
        try{
            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(str.getBytes());

            return new BigInteger(1,md.digest()).toString(16);
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }

    }
}

前台传输信息到后台

        MD5 pwd = new MD5();
        @SuppressWarnings("static-access")
        String password = pwd.getMD5(request.getParameter("password"));

然后一运行程序就报空指针异常:md.update(str.getBytes());想问问应该怎么修改

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    a718089112 a718089112 2018-05-21 09:18

    你前台传password参数了吗? request.getParameter("password") 检查一下,应该为null了

    点赞 评论 复制链接分享
  • zhaoHongTao123 zhaoHongTao123 2018-05-21 09:21

    如果是参数为空这种错误 你打个断点走一下 就会找出原因的

    点赞 评论 复制链接分享
  • PLATINUM_II PLATINUM_II 2018-05-21 09:26

    前端的值没获取到,

     String pwd =  request.getParameter("password")
     if(pwd != null && "".equals(pwd)){
        pwd.getMD5();
     }
    
    点赞 评论 复制链接分享
  • PLATINUM_II PLATINUM_II 2018-05-21 09:30

    写错了,应该是

      String pwd =  request.getParameter("password");
     if(pwd != null && !"".equals(pwd)){
        pwd.getMD5();
     }
    

    如果没获取到值就不走这个方法,你可以随便打印看一下。

    点赞 评论 复制链接分享
  • qq_33419017 qq_33419017 2018-05-21 09:32

    怀疑是不是 request.getParameter("password") 没有接到值,str.getBytes() 这句抛出的空指针啊。因为我直接将str赋值为“hello” 是可以会的结果的。(5d41402abc4b2a76b9719d911017c592) 。不过那个 MD5 的 getMD5 你加了 static 是可以直接 MD5.getMD5 使用的吧。不需要new对象了。

    点赞 评论 复制链接分享
  • mafaliao22 mafaliao22 2018-05-21 14:50

    打个断点跟踪一下就知道是哪个变量是null了。

    点赞 评论 复制链接分享
  • weixin_42229573 鹏程万里_一直在路上 2018-05-22 02:21

    request.getParameter("password")这个参数没值吧,页面没有name = password 的属性吧

    点赞 评论 复制链接分享
  • qq_29338911 我是农民工111 2018-05-23 02:20

    Optional optional = new Optional((String)request.getParameter("password"));
    if(!optional.isPrent()) {// 这里是判断是否为null的
    return;
    }
    String password =pwd.getMD5(optinal.get());

    点赞 评论 复制链接分享

相关推荐