jsp 连接数据库 执行查询语句出错了 帮帮忙

时间:2022-09-05 21:09:47
type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 16

13: request.getParameter("userpass");
14: String selectsql="select * form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
15: Statement stmtQuery=con.createStatement();
16: ResultSet rs = stmtQuery.executeQuery(selectsql);
17: if(rs==null) 
18:   response.sendRedirect("false.jsp");
19:  if(rs!=null)


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

24 个解决方案

#1


进来的 帮帮忙

#2


该回复于2010-11-25 13:48:29被版主删除

#3


少驱动了吧 

Class.forName("com.**.jdbc.Driver").newInstance();
   
   Connection con = DriverManager.getConnection(url,userName,userPassword);

#4


userPass=request.getParameter("userpass");

#5


form userlogin 

#6


建议你学MvC设计模式,这样代码全写在一层,不好测试。调试,问题可能连接数据库出错,可能后去表单数据有问题(SQl语句)出错! 

#7


像4L说的那样
userName和userpass赋值了么?

#8


String selectsql="select * form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
sql语句from写成了"form"

#9


你的select语句都写错啦,是 from不是form

#10


Connection con = null;      
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null) 
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#11


引用 9 楼 zdzb123 的回复:
你的select语句都写错啦,是from不是form
Connection con = null;   
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null)  
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#12


Connection con = null;   
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null)  
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#13


executeQuery
ResultSet executeQuery(String sql)
                       throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 

参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句 
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null 
抛出: 
SQLException - 如果发生数据库访问错误或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容

查看API,平常没事多思考思考。

#14


引用 8 楼 zxingchao2009 的回复:
String selectsql="select * form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
sql语句from写成了"form"


正解

#15


引用 5 楼 jumpheightway 的回复:
form userlogin
+1 form 改为from

#16


引用 12 楼 tongxingzhen123 的回复:
Connection con = null;  
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String……

正解 ,判断rs有没有数据,使用rs.next(),而不能用null来判断

#17


引用 15 楼 niu90 的回复:
引用 5 楼 jumpheightway 的回复:
form userlogin
+1 form 改为from

正解

#18


判断rs有没有数据,使用rs.next(),而不能用null来判断

#19


把生成的sql语粘出来在数据库查询器里看一下就知道了什么错了.

#20


代码 拿来 看下。

#21


rs.hasNext()判断null

#22


是的  楼主,看下API文档  你会发现  RS始终生成,要用RS。HASnext来判断

#23


判断rs有没有数据,使用rs.next(),而不能用null来判断

#24


 String selectsql="select *  form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
form改成 from

#1


进来的 帮帮忙

#2


该回复于2010-11-25 13:48:29被版主删除

#3


少驱动了吧 

Class.forName("com.**.jdbc.Driver").newInstance();
   
   Connection con = DriverManager.getConnection(url,userName,userPassword);

#4


userPass=request.getParameter("userpass");

#5


form userlogin 

#6


建议你学MvC设计模式,这样代码全写在一层,不好测试。调试,问题可能连接数据库出错,可能后去表单数据有问题(SQl语句)出错! 

#7


像4L说的那样
userName和userpass赋值了么?

#8


String selectsql="select * form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
sql语句from写成了"form"

#9


你的select语句都写错啦,是 from不是form

#10


Connection con = null;      
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null) 
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#11


引用 9 楼 zdzb123 的回复:
你的select语句都写错啦,是from不是form
Connection con = null;   
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null)  
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#12


Connection con = null;   
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String userName=null;
userName=request.getParameter("username");
String userPass=null;
userPass=request.getParameter("userpass");
String selectsql="select * from userlogin where username='"+userName+"' and userpass='"+userPass+"'";
Statement stmtQuery=con.createStatement();
ResultSet rs = stmtQuery.executeQuery(selectsql);
if(rs!=null)  
 response.sendRedirect("false.jsp");

库表里根本就没有要查找的数据 为什么rs还不是空值的呢??

#13


executeQuery
ResultSet executeQuery(String sql)
                       throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 

参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句 
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null 
抛出: 
SQLException - 如果发生数据库访问错误或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容

查看API,平常没事多思考思考。

#14


引用 8 楼 zxingchao2009 的回复:
String selectsql="select * form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
sql语句from写成了"form"


正解

#15


引用 5 楼 jumpheightway 的回复:
form userlogin
+1 form 改为from

#16


引用 12 楼 tongxingzhen123 的回复:
Connection con = null;  
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=user", "sa", "123");
String……

正解 ,判断rs有没有数据,使用rs.next(),而不能用null来判断

#17


引用 15 楼 niu90 的回复:
引用 5 楼 jumpheightway 的回复:
form userlogin
+1 form 改为from

正解

#18


判断rs有没有数据,使用rs.next(),而不能用null来判断

#19


把生成的sql语粘出来在数据库查询器里看一下就知道了什么错了.

#20


代码 拿来 看下。

#21


rs.hasNext()判断null

#22


是的  楼主,看下API文档  你会发现  RS始终生成,要用RS。HASnext来判断

#23


判断rs有没有数据,使用rs.next(),而不能用null来判断

#24


 String selectsql="select *  form userlogin where username='"+userName+"' and userpass='"+userPass+"'";
form改成 from