我的login.jsp就是简单的现实登录页面,我的LoginGo.jsp的部分代码如下:
<%@ page contentType="text/html; Charset=GB2312" language="java" import="java.sql.*,java.util.*,myPk.*"  %>
<%  Connection con;
    Statement sql;
    ResultSet rs;
    String ID,Pwd,Figure;//登录账号,密码,登录身份级别
    ID=request.getParameter("loginid");//loginid是login.jsp中账号的文本框名字
    Pwd=request.getParameter("password");//password是login.jsp中密码的密码框名字
try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
            out.print(e);
}
try
{
      con=DriverManager.getConnection("jdbc:odbc:TestScore","","");
      sql=con.createStatement();
  rs=sql.executeQuery("select * from users where ID='"+ID+"' and Pwd='"+Pwd+"'");
if(rs.next()){
   Figure=rs.getString("Figure");
   session.setAttribute("Figure",Figure);
                     if(Figure.equals("学生")){
                         response.sendRedirect("student.jsp");
                     }
                     else if(Figure.equals("教师")){
                          response.sendRedirect("teacher.jsp");
                     }         
                   }
else{
                     out.print("帐号或密码错误!");
             %>
           
            <br/> <a href="login.jsp">返回登录页</a>
             <%
             
                  }
        }
       catch(SQLException e){
         out.print(e);
       }
%>
不知道为什么,当我密码跟账号与数据库中一样的时候却现实一个空白页面,也不会根据登录身份进行页面跳转,希望知道的人可以帮我看看,谢谢

解决方案 »

  1.   

     rs=sql.executeQuery("select * from users where ID='"+ID+"' and Pwd='"+Pwd+"'");SQL语句要用;结尾的吧,你这个句子最后没有分号,没有被执行
      

  2.   

       catch(SQLException e){ 
            out.print(e); 
          } 
    到了这一步,所以只有空白页了吧
      

  3.   

    if(Figure.equals("学生")){ 
                            response.sendRedirect("student.jsp"); 
                        } 
                        else if(Figure.equals("教师")){ 
                              response.sendRedirect("teacher.jsp"); 
                        }  
    我这边不是做了这个吗,假如在登录账号和登录密码正确的时候再根据登录等级是学生就跳转到student.jsp面,教师的话是teacher.jsp
      

  4.   

    rs=sql.executeQuery("select * from users where ID='"+ID+"' and Pwd='"+Pwd+"'");
    这个句子我想是没有问题的吧
      

  5.   

    rs=sql.executeQuery("select * from users where ID='"+ID+"' and Pwd='"+Pwd+"'");确定是英文标点。。还有,有没有错误提示呀?
      

  6.   

    我是用写字板打开的,所以可能在符号上有点出入,我运行的时候它没有显示错误,只是我在登录页面中输入了账号和密码后,当然是数据库中存在的也是正确的,但是它没有按要求说我输入的这个账号是学生然后就跳转到student.jsp面,而教师的话是teacher.jsp。所以我才不知道具体要怎么进行修改
      

  7.   

    你的PWD输入时是用<input type="password".....>还是<input type="text".....>??
      

  8.   


    首先,看sql语句中传过去的id和psw是什么,如果这个为空,就肯定是传值的问题。
    然后看Figur获取到的是什么。
    然后在过去的页面中右键,看他的属性中的地址。
      

  9.   


    你先看看id,psw和Figur的值各是什么,在查看相关代码找出问题所在。
    我一般都是这样做的,是个笨办法。
    呵呵,你可以试一试。
      

  10.   

    我记得我最早的时候是没有加入登录身份跳转的,然后再浏览器上测试时可以成功的,说具体点就是,我输入了正确的账号跟密码后会显示“登录成功”,因为登录身份肯定不是只有一种,所以我想说根据登录者的身份给予相应的权限,但是这个让我失败了,希望你们能帮我看看,具体出在哪里,要不,我将登录页面跟JAVA部分也传上来,你们给予看看
      

  11.   

    使用response.sendRedirect(“”)的时候地址栏是要发生改变的,你的地址栏是什么呢
      

  12.   

    我注意过,没有变化,还是原来的LoginGo.jsp
      

  13.   

     Login.java
    package myPk;
    public class Login {
    String loginid,password;
    String Figure; boolean success=false;
    public String getLoginid() {
    return loginid;
    }
    public void setLoginid(String loginid) {
    this.loginid = loginid;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    public String getFigure() {
    return Figure;
    }
    public void setFigure(String figure) {
    Figure = figure;
    }
    }
      

  14.   

    login.jsp部分核心代码:
    <FORM action="LoginGo.jsp" method=post language=javascript name=form1 onSubmit="return form1_onsubmit()">
    <table >   
            <TR>
              <TD><center>账号:
                <INPUT class=login id=loginid type=text  maxLength=20  size=20 name=loginid> </center></TD></TR>
            <TR>
              <TD><center>密码: 
                <INPUT class=login id=password type=password  maxLength=20 size=20 name=password> </center></TD></TR>   
            <TR>
              <TD>
                <DIV align=center>
                  <input name="originalURI" type="hidden" id="originalURI" value=""/>
                  <BR>
                  <INPUT type=submit value="登录" name=Submit/>
                  <INPUT type=reset  value="重置" name=Submit2/>
                  <br> 
      

  15.   

    把 Figure 的值打印出来 ,看看到底是什么
    数据库连接没有关闭,在server端把exception打印出来
    怀疑是catch到错误了
      

  16.   

    你先看看id,psw和Figur的值各是什么,看一下有没有对照。
      

  17.   

    ID=request.getParameter("loginid");//loginid是login.jsp中账号的文本框名字 
    Pwd=request.getParameter("password");//password是login.jsp中密码的密码框名字 这段能拿到值么?你确定你的地址栏里面有loginid和password?
      

  18.   

     加System.out.println(username +"  " +password)看看参数有没有过来
      

  19.   

    断点跟踪,或者多system.out.println,看看到底是哪一步不对。提高下,result,statement跟connection还是要关闭的,不要养成这种坏毛病