这里是java代码:public boolean checkAdmin(String username, String password)//检查管理员的登录名和密码是否正确
throws UserException {
//创建一个变量用于判断结果
boolean isAdmin = false;
//查询admin表的SQL语句
String selectSql = "SELECT * FROM admin WHERE username=? AND password=?";
PreparedStatement pmst = null;
try{
//创建一个数据库连接对象
ConnectDB conn = new ConnectDB();
//执行查询语句
pmst = conn.getConnection().prepareStatement(selectSql);
//1代表查询语句中的?号,username为形参
pmst.setString(1, username);
//1代表查询语句中的?号,username为形参
pmst.setString(2, password);
// pmst.executeQuery();
ResultSet rst = pmst.executeQuery();
//判断结果是否为空,如否,说明用户名和密码是正确的
if(rst.next()){
isAdmin = true;
}这里JSP的检测页面的代码:
<%@ page language="java" import="java.util.*,userJSP.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'cklogin.jsp' starting page</title>
<link rel="stylesheet" href="images/css.css" type="text/css" media="screen">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
String userName = request.getParameter("username");
String passWord = request.getParameter("password"); if(userName==null || (userName = userName.trim()).length() == 0) {
session.setAttribute("error","登录失败,请输入您的登录名。");
response.sendRedirect("error.jsp");
}
if(passWord==null || passWord.length() == 0) {
session.setAttribute("error","登录失败,请输入您的密码。");
response.sendRedirect("error.jsp");
}
UserInter objDB = UserInfoFactory.getUserInfoDB();
boolean ret = false;
boolean exception = false;
try{
ret = objDB.checkAdmin(userName,passWord);
}catch(UserException appe){
exception = true;
session.setAttribute("error",appe.getMessage());
response.sendRedirect("error.jsp");
}catch(Exception e){
exception = true;
session.setAttribute("error","发生异常,管理员登录失败。");
response.sendRedirect("error.jsp");
}
if(!exception){
if(!ret){
session.setAttribute("error","用户名或密码错误!请重新登陆。");
response.sendRedirect("error.jsp");
}else{
session.setAttribute("adminName_s",userName);
response.sendRedirect("userlist.jsp");
}
}
%>
</body>
</html>
出错是内容是: 注: at userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)是上面pmst = conn.getConnection().prepareStatement(selectSql);这一行的代码.
java.lang.NullPointerException
at userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)
at org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595) 登录返回的信息是"用户名或密码错误!请重新登陆。"
小弟实在想不出是什么出错了,经过N次的试验都无法得出结果,
现在急着解决,请高手帮下忙吧!
有问题的可以提出来,
多谢!!!!!!!!
throws UserException {
//创建一个变量用于判断结果
boolean isAdmin = false;
//查询admin表的SQL语句
String selectSql = "SELECT * FROM admin WHERE username=? AND password=?";
PreparedStatement pmst = null;
try{
//创建一个数据库连接对象
ConnectDB conn = new ConnectDB();
//执行查询语句
pmst = conn.getConnection().prepareStatement(selectSql);
//1代表查询语句中的?号,username为形参
pmst.setString(1, username);
//1代表查询语句中的?号,username为形参
pmst.setString(2, password);
// pmst.executeQuery();
ResultSet rst = pmst.executeQuery();
//判断结果是否为空,如否,说明用户名和密码是正确的
if(rst.next()){
isAdmin = true;
}这里JSP的检测页面的代码:
<%@ page language="java" import="java.util.*,userJSP.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'cklogin.jsp' starting page</title>
<link rel="stylesheet" href="images/css.css" type="text/css" media="screen">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
String userName = request.getParameter("username");
String passWord = request.getParameter("password"); if(userName==null || (userName = userName.trim()).length() == 0) {
session.setAttribute("error","登录失败,请输入您的登录名。");
response.sendRedirect("error.jsp");
}
if(passWord==null || passWord.length() == 0) {
session.setAttribute("error","登录失败,请输入您的密码。");
response.sendRedirect("error.jsp");
}
UserInter objDB = UserInfoFactory.getUserInfoDB();
boolean ret = false;
boolean exception = false;
try{
ret = objDB.checkAdmin(userName,passWord);
}catch(UserException appe){
exception = true;
session.setAttribute("error",appe.getMessage());
response.sendRedirect("error.jsp");
}catch(Exception e){
exception = true;
session.setAttribute("error","发生异常,管理员登录失败。");
response.sendRedirect("error.jsp");
}
if(!exception){
if(!ret){
session.setAttribute("error","用户名或密码错误!请重新登陆。");
response.sendRedirect("error.jsp");
}else{
session.setAttribute("adminName_s",userName);
response.sendRedirect("userlist.jsp");
}
}
%>
</body>
</html>
出错是内容是: 注: at userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)是上面pmst = conn.getConnection().prepareStatement(selectSql);这一行的代码.
java.lang.NullPointerException
at userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)
at org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595) 登录返回的信息是"用户名或密码错误!请重新登陆。"
小弟实在想不出是什么出错了,经过N次的试验都无法得出结果,
现在急着解决,请高手帮下忙吧!
有问题的可以提出来,
多谢!!!!!!!!
解决方案 »
- 想做一个类似于CSDN博客的评论模块,希望大虾提出一些构思
- tomcat中server.xml文件的配置
- 服务器端怎样判断文件格式
- 如何提取即時足球比賽比數?
- SOS!!!!Struts如何从数据库中读取字段并动态生成控件!!!
- 求助问题:javax.servlet.jsp.JspException: Failed to obtain specified collection
- 麻烦大家帮我看看这个问题是什么意思啊?
- 运行wen.class时,错误:Exception in thread "main" java.lang.NoClassDefFoundError:wen
- Intellij idea的代码动态提示如何打开?
- 关于socket tcp的问题
- JavaMail中最后来一个setDebug();这是什么意思?
- log4j是干什么用的?怎么用?最好举例说明,谢谢!
这个地方,conn肯定得到了一个null
连接数据库没成功
其它自己找找看吧,太多了,不想看!
Connection con1=conn.getConnection();//这个能成功取得数据库连接吗?
pmst = con1.prepareStatement(selectSql);