解决方案 »

  1.   

    错误信息提示:
    type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /logincheck.jsp(58,37) equal symbol expected
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:200)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:155)
    org.apache.jasper.compiler.Parser.parseParam(Parser.java:847)
    org.apache.jasper.compiler.Parser.parseBody(Parser.java:1683)
    org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1022)
    org.apache.jasper.compiler.Parser.parseForward(Parser.java:886)
    org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1138)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1466)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  2.   

    页面编译不通过啊。

     <jsp:forward page = "loginsuccess.jsp">
            <jsp:param name = "username" value "<%=name%>"/>
        </jsp:forward>
    改成 <jsp:forward page = "loginsuccess.jsp">
            <jsp:param name = "username" value="<%=name%>"/>
        </jsp:forward>
      

  3.   


        <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>
      

  4.   

    感觉有点不科学诶 提一点我的思路:
    既然 已经得到用户的账号和密码 为何不直接查询账号密码是否存在且匹配?还要遍历。。这
    这种代码 还是尽量写个后台吧。全部写到JSP中 感觉 就算出错了 都不好改 很多错误找不出来的。
      

  5.   

    还是不行,不过你这好像没有修改什么啊····
    你的value少了一个=号,这个修改完之后 在修改 <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>  应该正常了
      

  6.   

    看下58行左右的代码
    注意引号有没有成对 是否是英文引号
    花括号也检查下有没有成对把代码嵌到jsp页面出错了是很不好找。。
      

  7.   

    还是不行,不过你这好像没有修改什么啊····
    你的value少了一个=号,这个修改完之后 在修改 <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>  应该正常了

    恩,是啊,太粗心了,符号居然掉了
    不过这次怎么又出来一个错误,equals方法应该是正确的
    你看下:
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 35 in the jsp file: /logincheck.jsp
    Syntax error, insert ") Statement" to complete IfStatement
    32:  while(rs.next()){
    33:  String temp1 = rs.getString(1);
    34:  String temp2 = rs.getString(4);
    35:  if(name.equals(temp1) && password.equals(temp2){
    36:  flag = true;
    37:  break;
    38:  }
      

  8.   

    都回答了。以后看看异常。/logincheck.jsp(58,37) equal symbol expected
      

  9.   

    还是不行,不过你这好像没有修改什么啊····
    你的value少了一个=号,这个修改完之后 在修改 <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>  应该正常了

    恩,是啊,太粗心了,符号居然掉了
    不过这次怎么又出来一个错误,equals方法应该是正确的
    你看下:
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 35 in the jsp file: /logincheck.jsp
    Syntax error, insert ") Statement" to complete IfStatement
    32:  while(rs.next()){
    33:  String temp1 = rs.getString(1);
    34:  String temp2 = rs.getString(4);
    35:  if(name.equals(temp1) && password.equals(temp2){
    36:  flag = true;
    37:  break;
    38:  }
    你的if语句少了一个小括号,改成下面的即可。
    if(name.equals(temp1) && password.equals(temp2)){
    36:  flag = true;
    37:  break;
    38:  }
      

  10.   

    还是不行,不过你这好像没有修改什么啊····
    你的value少了一个=号,这个修改完之后 在修改 <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>  应该正常了

    恩,是啊,太粗心了,符号居然掉了
    不过这次怎么又出来一个错误,equals方法应该是正确的
    你看下:
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 35 in the jsp file: /logincheck.jsp
    Syntax error, insert ") Statement" to complete IfStatement
    32:  while(rs.next()){
    33:  String temp1 = rs.getString(1);
    34:  String temp2 = rs.getString(4);
    35:  if(name.equals(temp1) && password.equals(temp2){
    36:  flag = true;
    37:  break;
    38:  }
    你的if语句少了一个小括号,改成下面的即可。
    if(name.equals(temp1) && password.equals(temp2)){
    36:  flag = true;
    37:  break;
    38:  }
    恩,是啊,还是太粗心了,先前改代码的时候漏掉了,这次编译通过了,只是验证的地方逻辑错了,跑到error页面去了,这里我还需要研究下,谢谢了啊
      

  11.   

    还是不行,不过你这好像没有修改什么啊····
    你的value少了一个=号,这个修改完之后 在修改 <%
            }else{
        %>
                <jsp:forward page = "error.jsp"/>
        <%    }
        %>  应该正常了

    恩,是啊,太粗心了,符号居然掉了
    不过这次怎么又出来一个错误,equals方法应该是正确的
    你看下:
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 35 in the jsp file: /logincheck.jsp
    Syntax error, insert ") Statement" to complete IfStatement
    32:  while(rs.next()){
    33:  String temp1 = rs.getString(1);
    34:  String temp2 = rs.getString(4);
    35:  if(name.equals(temp1) && password.equals(temp2){
    36:  flag = true;
    37:  break;
    38:  }
    你的if语句少了一个小括号,改成下面的即可。
    if(name.equals(temp1) && password.equals(temp2)){
    36:  flag = true;
    37:  break;
    38:  }我把try块里面的验证的方法换了一下,但是不知道怎么还是跳转到error页面去了
    代码如下:
    try{
    conn = DriverManager.getConnection(url);
    String sql = "select * from user where name = '" + name + "'" + "and password = '" + password + "'";
    statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    //statement.setString(1,name);
    //statement.setString(4,password);
    rs = statement.executeQuery(sql);
    if(rs.next()){
    flag = true;
    }
    //while(rs.next()){
    //String temp1 = rs.getString(1);
    //String temp2 = rs.getString(4);
    //out.println(temp1 + temp2);
    //if(name.equals(temp1) && password.equals(temp2)){
    //flag = true;
    //break;
    //}
    //name = rs.getString(1);
    //flag= true;
    //}
    }
      

  12.   

    进入error页面说明rs是空的。 输入的name和password数据库有对应的数据么? 
      

  13.   

    恩,是有的,但是不知道为什么结果集是空的
    你把sql语句 打印在控制台,复制出来再数据库里面运行一下,看能查出来数据么?
      

  14.   

    恩,是有的,但是不知道为什么结果集是空的
    你把sql语句 打印在控制台,复制出来再数据库里面运行一下,看能查出来数据么?
    sql语句在DBMS里面运行了的,可以出数据的,但是在浏览器里面不知道是怎么回事,也没有报错信息什么的
      

  15.   

    恩,是有的,但是不知道为什么结果集是空的
    你把sql语句 打印在控制台,复制出来再数据库里面运行一下,看能查出来数据么?
    sql语句在DBMS里面运行了的,可以出数据的,但是在浏览器里面不知道是怎么回事,也没有报错信息什么的
    try{
                conn = DriverManager.getConnection(url);
                String sql = "select * from user where name = '" + name + "'" + "and password = '" + password + "'";
                statement = conn.createStatement();    
                rs = statement.executeQuery(sql);
                if(rs.next()){
                    flag = true;
                }
                //while(rs.next()){
                    //String temp1 = rs.getString(1);
                    //String temp2 = rs.getString(4);
                    //out.println(temp1 + temp2);
                    //if(name.equals(temp1) && password.equals(temp2)){
                        //flag = true;
                        //break;
                    //}
                    //name = rs.getString(1);
                    //flag= true;
                //}
            }
    这样试试看行不行。
      

  16.   

    恩,是有的,但是不知道为什么结果集是空的
    你把sql语句 打印在控制台,复制出来再数据库里面运行一下,看能查出来数据么?
    sql语句在DBMS里面运行了的,可以出数据的,但是在浏览器里面不知道是怎么回事,也没有报错信息什么的
    try{
                conn = DriverManager.getConnection(url);
                String sql = "select * from user where name = '" + name + "'" + "and password = '" + password + "'";
                statement = conn.createStatement();    
                rs = statement.executeQuery(sql);
                if(rs.next()){
                    flag = true;
                }
                //while(rs.next()){
                    //String temp1 = rs.getString(1);
                    //String temp2 = rs.getString(4);
                    //out.println(temp1 + temp2);
                    //if(name.equals(temp1) && password.equals(temp2)){
                        //flag = true;
                        //break;
                    //}
                    //name = rs.getString(1);
                    //flag= true;
                //}
            }
    这样试试看行不行。
    不行啊,一般好像很少用*来查询了吧,这样空利利用率太低了
      

  17.   

    是的,项目中几乎不用*,你把sql语句后面的and前面加上一个空格。如果不行的话,看看你引入的conn包statement包rs包是否正确。
      

  18.   

    恩,前面的page指令直接引入了java.sql.*的包了,应该是没有问题的吧??
    我觉得这个问题太奇怪了,我都修改了好几次了,还试了还集中查询的方式,DBMS里面都正常,出来测试就直接跳转到error页面了