exception org.apache.jasper.JasperException: Exception in JSP: /login.jsp:4643:          prepStmt = conn.prepareStatement(selectStatement);
44:          prepStmt.setString(1, username);
45:          prepStmt.setString(2, password);
46:          rs = prepStmt.executeQuery();                            
47:  //瀹炵幇缃戦〉璺宠浆
48:  if (rs.next()) {
49:  out.println("Login Successful");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)这是他报的错
root cause javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'user' 附近有语法错误。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.login_jsp._jspService(login_jsp.java:139)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    String selectStatement = "select username from user" + 
                                    " where username=? and password=?"; 
     这里可能存在 换行问题 
    你把它缩放到一行 看看 
    我以前也遇到过  放在一行就OK了 
      

  2.   

         prepStmt = conn.prepareStatement(selectStatement); 
    44:         prepStmt.setString(1, username); 
    45:         prepStmt.setString(2, password); 
    46:         rs = prepStmt.executeQuery();                            
    47:         boolean  boo=rs.next();
    48: if (boo==true) { 
    49: out.println("Login Successful"); 
      

  3.   

    错误意思是sql语句的语法错了,你好好检查一下语句哟!祝你好运!(空格)
      

  4.   

     prepStmt = conn.prepareStatement(selectStatement); 
    44:         prepStmt.setString(1, username); 
    45:         prepStmt.setString(2, password); 
    46:         rs = prepStmt.executeQuery();                            
    47:      boolean boo=rs.next(); 
    48: if (boo==true) { 
    49: out.println("Login Successful"); 看看我该就知道了
      

  5.   

    打印出来sql语句 看看放到数据库能查询出来不?
      

  6.   

    其实这种自己很好调试的,首先将Sql语句粘贴到数据库中去执行看看对不对?
    然后再一步一步单步调试很快就能找到错误所在的
      

  7.   

    现在变成这个问题啦exception org.apache.jasper.JasperException: Exception in JSP: /login.jsp:4643:          prepStmt = conn.prepareStatement(selectStatement);
    44:          prepStmt.setString(1, username);
    45:          prepStmt.setString(2, password);
    46:          rs=(ResultSet)prepStmt.executeQuery();                            
    47:  //瀹炵幇缃戦〉璺宠浆
    48:  if(rs.next()) {
    49:  out.println("Login Successful");
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '=' 附近有语法错误。
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.login_jsp._jspService(login_jsp.java:141)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

  8.   

    晕死
    就是你sql语句的错误 导致excuteQuery不能执行你把selectStatement 在控制抬打印出来
    System.out.println(selectStatement );
    然后再在sql server中执行 看错误提示到底在哪
    一般可能是因为该空格的地方没空格引起的
      

  9.   

    还有  看下你的表是不是user?
    有没有写错
      

  10.   

    request.setCharetEnCoding("GBK");
    //把你接收过来的参数编码设置一下
    不然到了数据库就是乱码
    String username = (String) request.getParameter("username"); 
    String password = (String) request.getParameter("pwd"); 
      

  11.   

    在JSP中做业务,强呀,不过你的SQL拼错了,注意空格呀
      

  12.   

    你把sql语句放在查询分析器中,语句有错误下面的怎么能运行呢?还有就是user可能是个关键字,你把表名改一下,看看怎么样
      

  13.   

    user是sql中的保留关键字,不能用user作为表名...把数据库中的表名改为Users就不会有这个问题了...我以前遇到过这个问题的....
      

  14.   

    可能你的这个问题有两方面的原因,第一是你的sql中user和where之间可能缺少空格,第二是user这个不能作为表名。