description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
grad.util.user.op_user.isLogin(op_user.java:178)
org.apache.jsp.login1_jsp._jspService(login1_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.op_user.java 148-205行
/**
* 供管理员查询用户信息,管理员可以按帐号,姓名,院系查询用户信息
* @param account
* @param name
* @param college
* @param type
* @return
*/
public ArrayList getAllUserQuery(String account,String name,String college,String type)
{
Connection conn=null;
Statement st=null;
ResultSet rs=null;
String sql ="select * from t_user where type='"+type+"'";
if(account!=null&&!account.equals(""))
sql+=" and account='"+account+"'";
if(name!=null&&!name.equals(""))
sql+=" and name ='"+name+"'";
if(college!=null&&!college.equals(""))
sql+=" and college like '%"+college+"%'";
System.out.println(sql);
ArrayList al=new ArrayList();
try{
DataBase ds = new DataBase();
conn = ds.conn;
st = conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
user us=new user();
us.setId(rs.getInt(1));
us.setAccount(rs.getString(2)); //178行
us.setPassword(rs.getString(3));
us.setType(rs.getInt(4));
us.setName(rs.getString(5));
us.setSex(rs.getString(6));
us.setCollege(rs.getString(7));
us.setTeacher(rs.getString(8));
al.add(us);
}
return al;
}catch(Exception e){System.out.println(e.getMessage());return null;}
}
/**
* 判断是否允许用户登录
* @param user_code
* @param password
* @param type
* @return
*/
public boolean isLogin(String user_code,String password,String type)
{
user a = this.getUserByUserCode(user_code,type);
if(a.getPassword().equals(password))
return true;
else
return false; }
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
grad.util.user.op_user.isLogin(op_user.java:178)
org.apache.jsp.login1_jsp._jspService(login1_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.op_user.java 148-205行
/**
* 供管理员查询用户信息,管理员可以按帐号,姓名,院系查询用户信息
* @param account
* @param name
* @param college
* @param type
* @return
*/
public ArrayList getAllUserQuery(String account,String name,String college,String type)
{
Connection conn=null;
Statement st=null;
ResultSet rs=null;
String sql ="select * from t_user where type='"+type+"'";
if(account!=null&&!account.equals(""))
sql+=" and account='"+account+"'";
if(name!=null&&!name.equals(""))
sql+=" and name ='"+name+"'";
if(college!=null&&!college.equals(""))
sql+=" and college like '%"+college+"%'";
System.out.println(sql);
ArrayList al=new ArrayList();
try{
DataBase ds = new DataBase();
conn = ds.conn;
st = conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
user us=new user();
us.setId(rs.getInt(1));
us.setAccount(rs.getString(2)); //178行
us.setPassword(rs.getString(3));
us.setType(rs.getInt(4));
us.setName(rs.getString(5));
us.setSex(rs.getString(6));
us.setCollege(rs.getString(7));
us.setTeacher(rs.getString(8));
al.add(us);
}
return al;
}catch(Exception e){System.out.println(e.getMessage());return null;}
}
/**
* 判断是否允许用户登录
* @param user_code
* @param password
* @param type
* @return
*/
public boolean isLogin(String user_code,String password,String type)
{
user a = this.getUserByUserCode(user_code,type);
if(a.getPassword().equals(password))
return true;
else
return false; }
空指针的错误,在用到的时候没有声明
2、很有可能是User对象a为空
建议把sql语句打印出来然后在pl/sql或者其他什么工具上运行一遍
错误是在178行 LZ自己找一下那行有几个对象
再仔细检查时哪个为空
遇到为题看报错信息 定位到哪一行 然后根据错误信息自己分析一下
最关键的是我把代码拷到同学电脑上运行全部通过,这是为什么?
(注:我们两台电脑除了硬件不同,从操作系统到装载的工具软件没有任何区别,甚至于参数设置我都按他的电脑重新设过。)
这里会不会返回null呢if(null!=a && a.getPassword().equals(password))