建议将enter。jsp做成htm格式。递交表单不需要做成jsp格式。而且可以节省服务器时间。至于出错。仔细查看login.jsp代码吧。别人看不到代码。帮不了你。

解决方案 »

  1.   

    你的SQL语句是怎么写的。贴出来
      

  2.   

    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");
    大概是这样子的,我并不能记得太清,现在回到家里了,一天下来头昏脑涨的。实际程序中语法上应该没什么错误吧???
      

  3.   

    数据库是不是啊ORACLEpasswd是字符型的吗?我觉得可能是合成的sql有问题;
    如果实在不行
    sql="select name,passwd from login where name= '"+uname+"' and passwd='"+upasswd+"'";单引号也行的。
    比如说oracle你就不能那样写\"
      

  4.   

    我说了多少次了,给exception要给stack trace,要给的全一些。
      

  5.   

    oracle下面不能这样写\"么?
    那应该name和passwd都不对啊?为什么单单提示passwd是无效表示符???实在抱歉,exception上除了这一句javax.servlet.ServletException:ORA-00904:"2222":无效的标示符
    还有很多的但是好象都没有具体信息
      

  6.   

    sql="select name,passwd from login where name=\""+uname+"\" and passwd=\""+upasswd+"\"";
    问题好像就出在这句话上。
    数据库中应该是'uname'而不是"uname"吧,所以servlet对"2222"这个字符串无法处理,'2222'就对了。
      

  7.   

    oracle 的字符串是不能用"号的
    只能用'
    你用sqlplus来试一下你的SQL就知道有问题!所以你这样写当然不行啊另外passwd是什么型的??
    是数值型就别加上引号啊
      

  8.   

    用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();
      

  9.   

    首先应该是
    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