Java jsp和.equals与.trim()空指针异常
这可能是一个相当愚蠢的问题,我正在试图弄清楚为什么我会得到一个空异常,请帮助Java jsp和.equals与.trim()空指针异常,java,jsp,Java,Jsp,这可能是一个相当愚蠢的问题,我正在试图弄清楚为什么我会得到一个空异常,请帮助 String username = (String)session.getAttribute("username"); if (!username.equals("ADMIN")) { request.setAttribute("Error", "You are not the admin"); RequestDispatcher rd = request.getRequestDispatcher("Lo
String username = (String)session.getAttribute("username");
if (!username.equals("ADMIN")) {
request.setAttribute("Error", "You are not the admin");
RequestDispatcher rd = request.getRequestDispatcher("LoginPage.jsp");
rd.forward(request,response);
}
我试图让jsp检查用户名是否等于“ADMIN”,如果它不等于ADMIN,那么它将给出一个错误,然后请求登录页面
但我得到了一个空指针异常:
if (!username.equals("ADMIN")) {
谢谢那是因为
用户名
为空
最佳做法是说if(!“ADMIN”.equals(username))
由于常量字符串“ADMIN”是非空值,因此对其调用equals()
不会导致任何错误,而且是安全的
或者在比较之前,对用户名
执行空检查:
if (username != null && !username.equals("ADMIN"))
看起来
username
为空,即未存储在会话中。如果使用像Eclipse这样的IDE,您可以在中放置断点,用鼠标悬停在术语上,然后查看空值。看起来您在会话中没有名为用户名的属性。可能您将会话属性与请求参数混淆了。