sql="select name,passwd from login where name=\""+uname+"\" and passwd=\""+upasswd+"\""; rs=conn.execute(sql); if(rs(next)){ String username=rs.getString("name"; String userpasswd=rs.getString("passwd"); session.putvalue("name",username); session.putvalue("passwd",userpasswd); response.sendRedirect("user.jsp"); 大概是这样子的,我并不能记得太清,现在回到家里了,一天下来头昏脑涨的。实际程序中语法上应该没什么错误吧???
数据库是不是啊ORACLEpasswd是字符型的吗?我觉得可能是合成的sql有问题; 如果实在不行 sql="select name,passwd from login where name= '"+uname+"' and passwd='"+upasswd+"'";单引号也行的。 比如说oracle你就不能那样写\"
sql="select name,passwd from login where name=\""+uname+"\" and passwd=\""+upasswd+"\""; 问题好像就出在这句话上。 数据库中应该是'uname'而不是"uname"吧,所以servlet对"2222"这个字符串无法处理,'2222'就对了。
用PrepareStatement试试看?sql="select name,passwd from login where name=? and passwd=?" PrepareStatement ps; ps=con.prepareStatement(sql); ps.setString(1,uname); ps.setString(2,upassword); ps.executeQuert();
首先应该是 uname=request.getParameter("uname"); upasswd=request.getParameter("upasswd");然后sql应该问题不大,不过建议这么写 sql="select name,passwd from login where name='"+uname+"' and passwd='"+upasswd+"'";avtom(avtom)说的用preparestatemanet的办法也不错,可以避免错误第三session.putValue 和 session.getValue 在现在的servlet规范中 已经被session.setAttribute 和session.getAttribute 所代替,good luck
rs=conn.execute(sql);
if(rs(next)){
String username=rs.getString("name";
String userpasswd=rs.getString("passwd");
session.putvalue("name",username);
session.putvalue("passwd",userpasswd);
response.sendRedirect("user.jsp");
大概是这样子的,我并不能记得太清,现在回到家里了,一天下来头昏脑涨的。实际程序中语法上应该没什么错误吧???
如果实在不行
sql="select name,passwd from login where name= '"+uname+"' and passwd='"+upasswd+"'";单引号也行的。
比如说oracle你就不能那样写\"
那应该name和passwd都不对啊?为什么单单提示passwd是无效表示符???实在抱歉,exception上除了这一句javax.servlet.ServletException:ORA-00904:"2222":无效的标示符
还有很多的但是好象都没有具体信息
问题好像就出在这句话上。
数据库中应该是'uname'而不是"uname"吧,所以servlet对"2222"这个字符串无法处理,'2222'就对了。
只能用'
你用sqlplus来试一下你的SQL就知道有问题!所以你这样写当然不行啊另外passwd是什么型的??
是数值型就别加上引号啊
PrepareStatement ps;
ps=con.prepareStatement(sql);
ps.setString(1,uname);
ps.setString(2,upassword);
ps.executeQuert();
uname=request.getParameter("uname");
upasswd=request.getParameter("upasswd");然后sql应该问题不大,不过建议这么写
sql="select name,passwd from login where name='"+uname+"' and passwd='"+upasswd+"'";avtom(avtom)说的用preparestatemanet的办法也不错,可以避免错误第三session.putValue 和 session.getValue 在现在的servlet规范中
已经被session.setAttribute 和session.getAttribute 所代替,good luck