public boolean executeQuery(String sql)
{
rs=null;
boolean flag=false;
try 
{
Class.forName(mysqlDriver);
mysqlCon= DriverManager.getConnection(this.mysqlURL,this.mysqlUser,this.mysqlPassword);
Statement stmt=mysqlCon.createStatement();
rs=stmt.executeQuery(sql);
if (rs.next())
{
flag=true;
}
rs.close();
stmt.close();
}
catch (Exception ex)
     {

     System.err.println("aq.executeQuery:"+ex.getMessage());
}finally {
mysqlCon.close(); // 关闭数据库
}
     return flag;
    }
    
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<jsp:useBean id="pic_dbcon" scope="page" class="picdb.pic_dbcon"/>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
String email=request.getParameter("email");
String sql="select * form user where username='"+username+"'";
boolean  flag=pic_dbcon.executeQuery(sql);
if (flag)
{
session.setAttribute("register_message","名字已经重复,请重新输入!");
  %>
<jsp:forward page="freemember.jsp" />
<% 
}
else
 {
 %>
<html>
<head>
<title>免费用户注册二</title>
</head><body>
<p>你的用户注册信息如下:</p><form name="form" method="post" action="end_freemember.jsp">
<p>用户名: <input type="text"  name="username" value="<%=username %>"></p>
  <p>密 码:
    <input type="text"  name="password" value="<%=password %>">
  </p>
  <p> E_MAIL: 
    <input type="text"  name="email" value="<%=email %>">
  </p>
  <p> 
    <input type="submit" name="Submit" value="Submit">
    <input type="reset" name="Submit2" value="Reset">
  </p>
</form>
</body>
</html>
<%
}
%>你试试吧

解决方案 »

  1.   

    String sql="select * form user where username='"+username+"'";
    应该是String sql="select * from user where username='"+username+"'";
      

  2.   

    executeQuery()是java的api,你该一个名字,最好不要用这个名字,ok?
      

  3.   

    要先判断用户是否输入了东西,这一段最好这样写:
    <%
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String email=request.getParameter("email");
    String sql="select * form user where username='"+username+"'";
    ResultSet rs=pic_dbcon.executeQuery(sql);
    if (rs.next())
    {rs.close();
    session.setAttribute("register_message","名字已经重复,请重新输入!");
      %>
    写成下面的样子
    <%
    String username = "";
    String password = "";
    String email = "";
    String sql = "";
    username = request.getParameter("username");
    password = request.getParameter("password");
    email = request.getParameter("email");
    if(username != null && !username.equals("") && password != null && !password.equals("") && email != null && !email.equals("")) {
      sql="select * form user where username='"+username+"'";
    ResultSet rs=pic_dbcon.executeQuery(sql);
    if (rs.next())
    {rs.close();
    session.setAttribute("register_message","名字已经重复,请重新输入!");
    }
    %>
      

  4.   

    唉,我太粗心大意了,不过第三页出现问题了.end_freemember.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
    <!jsp:useBean id="pic_dbcon" scope="page" class="picdb.pic_dbcon"/>
    <% 
    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String email=request.getParameter("email");
    String sql="insert into user(username,password,email,userid) values('"+username+"','"+password+"','"+email+"',(select count(*) from user))";
    System.out.println(sql);
    pic_dbcon.executeSql(sql);
    session.setAttribute("username",username);
     %>
    <html>
    <head>
    <title>恭喜<%=username %>注册成功!</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head><body>
    祝贺你!你已经成为我们的会员了! 
    </body>
    </html>
    出现错误!!
    Note: sun.tools.javac.Main has been deprecated.
    /pic/end_freemember.jsp:9: Undefined variable or class name: pic_dbcon
    pic_dbcon.executeSql(sql);
    ^
    1 error, 1 warning----------------------
    我感觉不应该犯这个错误啊,帮我解决一下.谢谢
      

  5.   

    你传给ok_freemember.jsp的参数username和password为空,假如判断它们是否为空的语句就可以了
      

  6.   

    cxj_2000(多多呢?多多呢?啊!!!¥%#%……※) 
    你的方法我也想过,如果用户没有输入的话我会用js进行判断,这样应该和你写的那段一样了吧?
      

  7.   

    String username=request.getParameter("username");
    String password=request.getParameter("password");
    String email=request.getParameter("email");
    可能会取不到值,假如取不到,将为null
    你作个处理 ,假如为null,就把""伏给他们。
      

  8.   

    谢谢,我是一个初学者,我想在一个月内(虽然JSP高手写我的图片管理一星期足够)把这个程序写完.这不刚刚把数据库设计好,就差动工了,做到哪学到哪,虽然我感觉我写完这个程序的时候,在回头看这个程序一定会觉得它是个拉圾.呵呵,不过那时我可能会在程序的优化和错误机制上下点工功了.我现在最重要的是不让它出错,不用太优化程序设计,因为我很初学.我想看到成果,学到东西,然后在一步步的进行优化.不知道这样学JSP是不是一个好办法.
      

  9.   

    pic_dbcon.executeSql(sql);
    ^
    1 error, 1 warning这个错误,就是我说的:executeQuery()是java的api,你改一个方法名字。
      

  10.   

    把这个方法加到你的bean里面。
     public String NullToSp(String Col) {
    if (Col == null)
    return "";
    else
    return Col.trim();
    }String username=pic_dbcon.NullToSprequest.getParameter("username"));
     
    就可以避免username为null了。
    还有,数据库连接在使用后必须关闭,你的就没有关闭,我帮你改了,你看看我上面给你帖的程序吧
      

  11.   

    OK我正在试中,不过我的bean数据库已经关了,为什么你说没关啊,
    try
         {
         Class.forName(mysqlDriver);
             mysqlCon= DriverManager.getConnection(this.mysqlURL,this.mysqlUser,this.mysqlPassword);
             Statement stmt=mysqlCon.createStatement();
             stmt.executeUpdate(strSQL);
             stmt.close();
             mysqlCon.close();
            }
            catch (Exception ex)
            {
         System.err.println("aq.executeQuery:"+ex.getMessage());}
       
        }
            
    }