应该是request.getParameter("xxx");
这个从表单得到数据时没有输入值的缘故

解决方案 »

  1.   


    register_fconfirm.jsp<html>
    <head>
    <%@ page contentType="text/html;charset=gb2312" %> 
    <title>注册确认</title>
    <link rel=stylesheet href="../style.css" type="text/css">
    </head>
    <body>
    <center>
    <%@ page language="java" import="java.sql.*" %>
    <jsp:useBean id="bidBean" scope="page" class="firm.firm" />
    <%
      String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
      String password=request.getParameter("password");
      String email=request.getParameter("email");
      String url=request.getParameter("url");
      String oicq=request.getParameter("oicq");
      String sql="select * from user where name='" + name1 + "'";
      ResultSet rs = bidBean.executeQuery(sql); 
    if(rs.next()) { 
      rs.close();
      session.putValue("register_message","该会员已经存在,请重新输入!");
    %>
      <jsp:forward page="register.jsp"/>
    <% 

    else

    rs.close();
     } 
    %>
    <FORM METHOD=POST ACTION="ok_register.jsp">
    <INPUT TYPE="hidden" name="user_id" value="<%=name1%>">
    <INPUT TYPE="hidden" name="password" value="<%=password%>">
    <INPUT TYPE="hidden" name="email" value="<%=email%>">
    <INPUT TYPE="hidden" name="url" value="<%=url%>">
    <INPUT TYPE="hidden" name="oicq" value="<%=oicq%>">
    <font color="red"><%=name1%>你好,请检查您的注册信息是否正确!</font><br><br>
    <table border="=1" cellspacing="0" width="332" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF">
    <TR>
        <TD>登录名:</TD>
        <TD><%=name1%></TD>
    </TR>
    <TR>
        <TD>密码:</TD>
        <TD><%=password%></TD>
    </TR>
    <TR>
        <TD>E-mail:</TD>
        <TD><%=email%></TD>
    <TR>
    </TR>
        <TD>主页:</TD>
        <TD><%=url%></TD>
    </TR>
    </TR>
        <TD>OICQ:</TD>
        <TD><%=oicq%></TD>
    </TR>
    </TABLE>
    <br>
        <INPUT TYPE="submit" value="提交"class="buttonface">&nbsp;&nbsp;
        <INPUT TYPE="button" value="修改" class="buttonface" onclick="history.back()">
    </FORM>
    </CENTER>
    </body>
    </html>
      

  2.   

    可能是这里的原应
      String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
    更改为
      String name1= request.getParameter("user_id");
      

  3.   

    另外在tomcat中查找文件
    register_005fconfirm_jsp.java看看69行是什么代码.
      

  4.   

    这个问题应该不是代码的问题,看看Tomcat的配置,或者数据库存在什么问题?或者你的Url有没有写对?
      

  5.   

    数据库没有问题,我用的是postgresql数据库,firm.java是连接数据库文件,已经测试正常运行
      

  6.   

    可能是这里的原应
      String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
    更改为
      String name1= request.getParameter("user_id");改了这一句还是不可以,同样的错误
      

  7.   

    我的jdk是这样配置:装到从c:\JDK目录下面。  然后设置CLASSPATH的问题了:  正如操作系统利用PATH来搜索可执行程序一样,Java运行环境也会遍历CLASSPATH来查找类,即便是HelloWorld这样简单的程序,JVM也会遍历CLASSPATH定义的每一个路径,直到找到相应的文件为止。  相信大家用的系统不是2k就是XP,然后就应当如下设置Path:  我的电脑->属性->高级->环境变量  然后在环境变量的Path后面追加: C:\JDK\bin;.;C:\JDK\lib  也可以这样配置:C:\JDK\bin;.;C:\JDK\lib\dt.jar;C:\JDK\lib\tools.jar
    tomcat是这样配置:  C:\Tomcat  然后再配置环境变量;添加三个系统变量:JAVA_HOME: C:\JDK
    TOMCAT_HOME: C:\Tomcat
    CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib 
    大家帮我看看有没有错。
      

  8.   

    在tomcat中查找文件
    register_005fconfirm_jsp.java看看69行是什么代码.
      

  9.   

    register_005fconfirm_jsp.java69: if(rs.next()) { 
    70:  rs.close();
    71:  session.putValue("register_message","璇ヤ細鍛樺凡缁忓瓨鍦?璇烽噸鏂拌緭鍏?");72:      out.write("\r\n");
    73:      out.write("  ");
    74:      if (true) {
    75:        _jspx_page_context.forward("register.jsp");
    76:        return;
    77:      }
    78:      out.write('\r');
    79:      out.write('\n');
    80: 
    81:   }
      

  10.   

    现在报的错误和你的register_005fconfirm_jsp.java代码,一起看看是什么问题.
      

  11.   


    register_005fconfirm_jsp.java文件的69行是69: if(rs.next()) { 是这有错吗??错误有org.apache.jsp.register_005fconfirm_jsp._jspService(register_005fconfirm_jsp.java:69)
      

  12.   

    NullPointerException
    明显,有对象没被初始化.
      

  13.   

    我靠,当然会出错了!!!!
    你rs.next()的时候怎么能rs.close()呢??????这样改:<jsp:useBean id="bidBean" scope="page" class="firm.firm" />
    <%
      String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
      String password=request.getParameter("password");
      String email=request.getParameter("email");
      String url=request.getParameter("url");
      String oicq=request.getParameter("oicq");
      String sql="select * from user where name='" + name1 + "'";
      ResultSet rs = bidBean.executeQuery(sql); 
    if(rs.next()) { 
      session.putValue("register_message","该会员已经存在,请重新输入!");
    %>
      <jsp:forward page="register.jsp"/>
    <% 

    rs.close();
    %>
      

  14.   

    keen1982(keen)  已经按你说的改了,不过还是同意的错误,只不过68行的错误信息变成了org.apache.jsp.register_005fconfirm_jsp._jspService(register_005fconfirm_jsp.java:69)register_005fconfirm_jsp.java文件的69行是69: if(rs.next()) { 怎么办???
      

  15.   

    将你的所有的String 变量做除null处理
    String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
      String password=request.getParameter("password");
      String email=request.getParameter("email");
      String url=request.getParameter("url");
      String oicq=request.getParameter("oicq");
    改成如下:
    String name1= new String(request.getParameter("user_id").getBytes("8859_1"));
    if(name1==null || name1.equals("") || name1.length()<=0)
       name1 = "0";//此处设相应的操作
    以下的几个变理做同样的处理
      

  16.   

    楼主把你写的javabean贴出来看看
      

  17.   

    javabeanpackage firm;
    import java.sql.*;
    public class firm
    {
       
        private Connection conn=null;
        private Statement stmt=null;
        ResultSet rs=null;
        String url ="jdbc:postgresql://localhost/testcc" ;
        //testcc为数据库名 
        String user="postgres"; 
        String password="1234"; 
        public firm()
        {
            try
            {
                   Class.forName("org.postgresql.Driver").newInstance(); 
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    public  ResultSet executeQuery(String sql)
    {
        rs=null;
        try
        {
            conn=DriverManager.getConnection(url,user,password);
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("aq.executeQuery:"+ex.getMessage());
        }
        return rs;
    }
    public void executeUpdate(String sql)
    {
        stmt=null;
        rs=null;
        try
        {
            conn=DriverManager.getConnection(url,user,password);
            stmt=conn.createStatement();
            stmt.executeQuery(sql);
            stmt.close();
            conn.close();
        }
        catch(SQLException ex)
        {
            System.err.println("aq.executeQuery:"+ex.getMessage());
        }
    }
    public void closeStmt()
    {
        try
        {
            stmt.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
    public void closeConn()
    {
        try
        {
            conn.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }}
    }我用的数据库是postgresql8.0,数据库testcc建了一个表user,有五列name,password,email,www,oicq数据类型全部为text,我写了一个测试程序:public static void main(String[] args){
    firm f = new firm();
    String sql =" insert into user (name,password,email,www,oicq) values ('"123"','"12345"','"[email protected]"','"www.163.com"','"12345"')";
    f.executeUpdate(sql);
    ResultSet rs = f.executeQuery("select * from user");
    try{
    while(rs.next()){
    String a = rs.getString(1);
    String b = rs.getString(2);
    String c = rs.getString(3);
    String d = rs.getString(4);
    String e = rs.getString(5);
    System.out.println("1:"+a + 
                       "2:"+b +
                       "3:"+c +
                       "4:"+d +
                       "5:"+e );
    }

    rs.close();

    }catch(SQLException sqle){
    sqle.printStackTrace();
    }编译时有两个错误: C:\Documents and Settings\xtz\桌面\firm.java:88: ';' expected String sql =" insert into user (name,password,email,www,oicq) values ('"123"','"12345"','"[email protected]"','"www.163.com"','"12345"')";C:\Documents and Settings\xtz\桌面\firm.java:88: illegal character: \64 String sql =" insert into user (name,password,email,www,oicq) values ('"123"','"12345"','"[email protected]"','"www.163.com"','"12345"')";
      

  18.   

    楼主,不知道我建议的做除null处理你看了没有,肯定是这个原因,你试试吧!
      

  19.   

    String sql =" insert into user (name,password,email,www,oicq) values ('"123"','"12345"','"[email protected]"','"www.163.com"','"12345"')";
    这个怎么是这样的?
    "要转义!
      

  20.   

    楼主把C:\tomcat\work\Standalone\localhost\_底下得目录全删了,然后重启一下tomcat服务器!!!再试试!!!
      

  21.   

    java.lang.NullPointerException通常都是因为Resultset的对象为空的,但你调用了它的方法。在你的程序里应该是rs.
    我觉得是你的那句sql语句出错吧,你尝试一下System.out.println(sql),看看sql是否正确吧!!
      

  22.   

    jihanzhong(逍遥) 
    “要转义的话应该怎么转??
    ckris(思博) 
    我开始用javabean测试数据库的时候数据库中建了一个测试用表test,数据类型全部是int,连接正常,后来在建表user中类型全部设为text,这样就出错了
    hang818() 
    我觉得你说的有道理,可是我不知道怎么改,能不能帮帮忙?
      

  23.   

    keen1982(keen) 你说的方法试过了,没有用
      

  24.   

    shan_wei(拉丁情人) 我会试试你的建议,谢谢先
      

  25.   

    对象为空,应该出错了吧,java.lang.NullPointerException
      

  26.   

    还没有搞定我用firm.java测试数据库没有问题,我用另外一个jsp文件ok_register.jsp测试ok_register.jsp<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>注册成功</title>
    <link rel=stylesheet href="style.css" type="text/css">
    </head>
    <%@ page language="java" import="java.sql.*" %>
    <jsp:useBean id="RegBean2" scope="page" class="firm.firm" />
    <%
     String name1= request.getParameter("user_id");
     String pwd1= request.getParameter("password");
     String email=request.getParameter("email");
     String url=request.getParameter("url");
     String oicq=request.getParameter("oicq");
     String strSQL="insert into usertable (name,password,email,www,oicq) values(' "+ name1 +"','" + pwd1 +"','" + email +" ','" + url +"','" + oicq + "')";
     out.print(strSQL);
     RegBean2.executeUpdate(strSQL);
     
     session.putValue("username",name1);
     out.print ("hello!");
    %>
    <body >
    </body>
    </html>我是这样测试的,我把ok_register.jsp中的insert into usertable (name,password,email,www,oicq) values(' "+ name1 +"','" + pwd1 +"','" + email +" ','" + url +"','" + oicq + "');改为:insert into usertable (name,password,email,www,oicq) values('  name1 ',' pwd1 ',' email ',' url ','oicq ');在firm.java中,结果能插入数据库,但是在ok_register.jsp中运行以后的结果是insert into usertable (name,password,email,www,oicq) values(' name1 ',' pwd1 ',' email ',' url ',' oicq ')hello! ,检查数据库发现( name1 , pwd1 , email , url , oicq) 并不在数据库中,就是说
    ok_register.jsp运行后并没有把值写入数据库怎么回事啊?是不是我的javabean不对?还是comcat没有运行javabean??高手帮帮忙嘛!!!
      

  27.   

    已经解决了,是select语句的问题java.lang.NullPointerException这个问题一般是由数据库引起谢谢各位的帮忙