毕设遇到了两个问题,希望能帮我看看!
第一个是
Servlet.service()引发了java.lang.NullPointerException java.lang.NullPointerException
说缺少standard-1.1.2.jar和另一个包我照做了没用
第二个是
: Access denied for user 'root'@'localhost' (using password: YES)
密码是对的,但是还是有错!
if (null != conn)
conn.close();
PreparedStatement statement = conn.prepareStatement(sql);
// 查询
statement.executeQuery();
// 新增,删除,更新
statement.executeUpdate();
你这俩错应该都是你的数据库链接获取失败导致的空指针
检查下你的mysql数据库用户名密码是否正确,是否开启远程访问。
这个错误代表所代表的大致意义是空指针报错。
错误样例代码:
这个代码是将字符串进行长度比较并按升序排列
import java.util.*;
class English implements Comparable<English>
{
private String s;
English(){}
English(String s)
{
this.s=s;
}
public String toString()
{
return s+" ";
}
public int compareTo(English o1)
{
if(this.getS().length()-o1.getS().length()>0)
return 1;
if(this.getS().length()-o1.getS().length()<0)
return -1;
return 0;
//return 0;
}
public void setS(String s)
{
this.s=s;
}
public String getS()
{
return s;
}
}
public class Main
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
//String b="#";
English n[]=new English[5];//此处出现空指针,必须输入5个值,否则会出现空指针或者指针超出范围!!
int i=0;
for(i=0;i<5;i++)
n[i]=new English();
String a;
i=0;
while(sc.hasNext())
{
a=sc.next();
if(a.compareTo("#")==0)
break;
n[i]=new English(a);
i++;
}
Arrays.sort(n);
for(i=0;i<n.length;i++)
{
System.out.println(n[i].toString());
}
}
}
样例及报错情况如下:
adsa
dsdsd
fddfdf
ds
#
Exception in thread "main" java.lang.NullPointerException
at English.compareTo(Main.java:61)
at English.compareTo(Main.java:47)
at java.base/java.util.ComparableTimSort.binarySort(ComparableTimSort.java:262)
at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:189)
at java.base/java.util.Arrays.sort(Arrays.java:1249)
at Main.main(Main.java:100)
解析:起初以为是比较器错误查了好几遍,又用collections.sort并用comparator又写了另一种用List的排列方法发现没问题。
最后锁定问题出在数组指针上,于是就对数组指针进行了多次更改。最后发现,数组指针定义的长度如果确定,就会出空指针错误或者超出位数的错误,所以问题出在这道题不该用定义好的数组长度上,所以此题应该用动态数组ArraysList解决而不能使用确定的数组长度。
对于第一个问题,异常信息"Servlet.service()引发了java.lang.NullPointerException java.lang.NullPointerException"表示在Servlet执行过程中发生了空指针异常,需要找到引发异常的代码位置并对其进行修复。可以通过查看异常堆栈信息来获取异常发生的位置,然后检查代码中是否存在对空对象的访问和操作。一般可以通过添加空指针判断来规避该问题,例如:
if (object != null) { // 对非空对象进行操作 }
对于第二个问题,可能存在密码验证逻辑有误的情况。需要检查代码中密码验证的实现,看是否存在密码比对时忽略大小写、空格等情况,以及是否对密码进行加密存储等问题。可以考虑使用已有的安全框架或库来简化密码验证的实现,例如Spring Security或bcrypt加密算法等。另外,也可以通过打印日志或调试来定位问题所在,以进一步修复问题。