一个空指针问题

沉心415 2008-10-17 06:00:15
在login。jsp提交后来到http://localhost:8080/guestbook8/admin/user后,
得到空指针错误:
java.lang.NullPointerException cc415.com.guestbook.AdminUserServlet.login(AdminUserServlet.java:46) cc415.com.guestbook.AdminUserServlet.doGet(AdminUserServlet.java:77) cc415.com.guestbook.AdminUserServlet.doPost(AdminUserServlet.java:87) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) cc415.com.guestbook.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:23)

这此,我用到的AdminUserServlet。java是直接从视频里拿过来的,也就是说视频里刘老师改的那个from已经改好了,我也不知道为什么在那视频里刘老师改了那个from后那个错误就没了。我然后以后是AdminUserServlet。java的46行有问题,就是觉得下面这段有问题

else{
String param[] =
{ username, password };
OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
db.init(); List result = (List) db.query(
"select id from admin where username=? and password=?",
param, new MapListHandler()); if (result.size() == 0) //该行为我的46行
{
message = "对不起,用户名或者密码不正确,请重新输入!";
request.setAttribute("guestbook.admin.login.message", message);
request.getRequestDispatcher("/admin/loginFail.jsp").forward(
request, response);
} else
{
HttpSession session = request.getSession();
session.setAttribute("guestbook.admin.username", username);
response.sendRedirect(request.getContextPath()
+ "/admin/secure/manage?q=list");
}
}

然后我就在46行前判断了一下,改成:

if (result != null)
{
if (result.size() == 0)
{
message = "对不起,用户名或者密码不正确,请重新输入!";
request.setAttribute("guestbook.admin.login.message",
message);
request.getRequestDispatcher("/admin/loginFail.jsp")
.forward(request, response);
} else
{
HttpSession session = request.getSession();
session.setAttribute("guestbook.admin.username", username);
response.sendRedirect(request.getContextPath()
+ "/admin/secure/manage?q=list");
}
}

但接着eclipse却抛出这样一段异常:

2008-10-17 17:52:16 org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started
java.sql.SQLException: ORA-01008: 并非所有变量都已关联
Query: select id from admin where username=? and password=? Parameters: []
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:359)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:240)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:309)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:328)
at cc415.com.util.OracleUtil.query(OracleUtil.java:64)
at cc415.com.guestbook.AdminUserServlet.login(AdminUserServlet.java:42)
at cc415.com.guestbook.AdminUserServlet.doGet(AdminUserServlet.java:79)
at cc415.com.guestbook.AdminUserServlet.doPost(AdminUserServlet.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cc415.com.guestbook.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)

查了很久,都没搞出来。不知道那出问题啦。望高人指点!谢谢
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉心415 2008-10-20
  • 打赏
  • 举报
回复
后来发现原来还是我搞错了。
不过问题解决了。
非常感谢1楼的高人。同时也非常感谢在此帮助我的其他朋友。
我的问题是出在query方法。应该是3个参数,我写成了2个。呵呵
再次谢谢大家
沉心415 2008-10-20
  • 打赏
  • 举报
回复
非常感谢大家的帮忙,

今天回来又试了一下eclipse,居然可以了。我什么都没改
我想问下,是不是有些什么问题eclipse需要重启,或是需要重新启动tomcat
我是新手,还望大家知道的指点一下。谢谢
  • 打赏
  • 举报
回复
java.sql.SQLException: ORA-01008: 并非所有变量都已关联;
这个错误:说明你的SQL语句有问题!仔细看一下!应该是少了变量值!
"select id from admin where username=? and password=?",
这句你的username和password字段对应的查询参数没有附值。
虽然你在session范围内已经保存,但在查询语句中它不会自动加进取的,需要自己手动加

xqh2168 2008-10-17
  • 打赏
  • 举报
回复
java.sql.SQLException: ORA-01008: 并非所有变量都已关联
Query: select id from admin where username=? and password=? Parameters: []
loveyt 2008-10-17
  • 打赏
  • 举报
回复
要看username和password变量值以及db.query方法了.

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧