Tomcat4/webapp/adduser
下是index.html
<html>
    <head>
  <title>
      ProJava Registration
  </title>
    </head>
  
    <body>
  <h1>
      WelCome
  </h1>
  
  <form action="/adduser/servlet/AdduserServlet" method="POST">
      <p>Your Name <input type="text" size="40" name="name" /></p>
      <p>Your Pass <input type="text" size="40" name="password" /></p>

      <p>Your Email <input type="text" size="40" name="email" /></p>
      <p>Your Homepage <input type="text" size="40" name="homepage" /></p>
      <input type="submit" value="Submit">
  </form>
    </body>
</html>
WEB-INF里的web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>

<web-app>
  <display-name>Greeting</display-name>
  <description>no description</description>
  <servlet>
    <servlet-name>adduserServlet</servlet-name>
    <display-name>greetingServlet</display-name>
    <description>no description</description>
    <servlet-class>AdduserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>adduserServlet</servlet-name>
    <url-pattern>/adduserServlet</url-pattern>
  </servlet-mapping>

</web-app>

 
classes 里面是
db.class用于封装数据库操作

//import oracle.jdbc.driver.*;
import java.net.*;
import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;

public class db implements Serializable
{
static Connection conn=null;
Statement stmt = null;
ResultSet rs=null;

//db的构造函数
public db()  
{
}

public static Connection getConnection()
{
try  
{
//注册数据库驱动程序为Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
/*建立数据库连接,使用Oracle的一种thin连接方式,@demo指主机名字,demodb为数据库,后面的两个demo为用户名和密码*/
conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oracle","scott","tiger");
}
catch(java.lang.ClassNotFoundException e)  
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
catch(java.sql.SQLException e)
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
catch(Exception e)
{
System.out.println("db(): " + e.getMessage());  
}
return conn;
}

//关闭数据库连接
public void closeConnection()
{
try
{
if(conn != null)
conn.close();
}
catch(java.sql.SQLException e)
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("db(): " + e.getMessage());
}
}

//executeQuery方法用于进行记录的查询操作
//入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql)  
{
rs = null;
try  
{
Connection conn1 = getConnection();
if(conn1 != null)
{
stmt = conn.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
//stmt.close();
}
else  
{
System.out.println("connection is null!\r\n");  
}
}
catch(SQLException ex)  
{
System.out.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}

//executeUpdate方法用于进行add或者update记录的操作
//入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql)  
{
boolean bupdate=false;
try  
{
//建立数据库连接
Connection conn1 = getConnection();
if(conn1 != null)
{
stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
//如果不成功,bupdate就会返回0
if(rowCount!=0)
bupdate=true;
}
}
catch(SQLException ex)  
{
//打印出错信息
System.err.println("db.executeUpdate: " + ex.getMessage());
}
return bupdate;
}

//toChinese方法用于将一个字符串进行中文处理
//否则将会是???这样的字符串
public static String toChinese(String strvalue)  
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}

}
 
adduser.class

//导入java类库
import java.sql.*;
import java.lang.*;
//import oracle.jdbc.driver.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db
{
String Username=""; //用户名
String Password=""; //密码
String Email=""; //email
String Homepage=""; //主页

public boolean addNewUser()
{
boolean boadduser=false;
try  
{
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into userinfo(regtime,username,password,email,homepage)");
sSql=sSql+ " values(SYSDATE,'"+Username+"','"+Password+"','"+Email+"','"+Homepage+"')";
//一种调试的方法,可以打印出sql语句,以便于查看错误
System.err.println(sSql);
//调用父类的executeUpdate方法,并根据成功以否来设置返回值
if(executeUpdate(sSql))
boadduser=true;
}
catch(Exception ex)  
{
//出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}
finally
{
//无论是否出错,都要返回值
return boadduser;
}
}

//checkUser()方法用来检查用户名是否重复  
//如果重复返回一个false
public boolean checkUser()
{
boolean boadduser=false;
try  
{
//构建sql查询语句
String sSql="select * from userinfo where username='"+Username+"'";
//调用父类的executeQuery方法
if(executeQuery(sSql).next())
{
//查询出来的记录集不为空
boadduser=false;
}
else
{
boadduser=true;
}
}
catch(Exception ex)  
{
//出错处理
System.err.println("adduser.checkUser: " + ex.getMessage());
}
finally
{
//返回值
return boadduser;
}
}

//属性的set/get方法,同请求的参数一致  
//属性用户名Username的get/set方法
public String getUsername()
{
return Username;
}
public void setUsername(String newUsername)
{
//用户名有可能是中文,需要进行转换
Username =db.toChinese(newUsername);
}

//属性密码Password的get/set方法
public String getPassword()
{
return Password;
}
public void setPassword(String newPassword)
{
Password = newPassword;
}

//属性Email的get/set方法
public String getEmail()
{
return Email;
}
public void setEmail(String newEmail)
{
Email = newEmail;
}

//属性主页Homepage的get/set方法
public String getHomepage()
{
return Homepage;
}
public void setHomepage(String newHomepage)
{
Homepage = newHomepage;
}

}
 
在servlet里调用adduser这个bean
AdduserServlet.java
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class AdduserServlet  
  extends HttpServlet      // servlet必须继承的类
{
  
    // 该方法处理POST请求
    protected void doPost (HttpServletRequest request,  HttpServletResponse response)  
    throws ServletException, IOException  
    {
  
    try
    {  
  
  adduser adduserbean=new adduser();
  // 通过请求对象获得请求中的参数
  String name = request.getParameter("name");
  String password = request.getParameter("password");
  String email = request.getParameter("email");
  String homepage = request.getParameter("homepage");
  String message = null;
  adduserbean.setUsername(name);
  adduserbean.setPassword(password);
  adduserbean.setEmail(email);
  adduserbean.setHomepage(homepage);
  
    if(adduserbean.checkUser()){
  adduserbean.addNewUser();    
    }
  
      
         if(adduserbean!=null)
        adduserbean.closeConnection();        // 该类的对象封装了时区的信息以及日期和时间
  // 用.get(int)方法从对象中获得有关日,月,年的信息
  
      response.setContentType("text/html");
        PrintWriter out = response.getWriter();

  out.println("<html>");
  out.println("<body>");
  out.println("<p>" + message + adduserbean.getUsername()+adduserbean.getPassword()+adduserbean.getHomepage()+adduserbean.getEmail()+", " + name + "</p>");
  out.println("<p>  Thanks for registering your email (" + email + ") with us.</p>");
  out.println("<p>your password is "+password+"and your email is "+email+"your homepage is "+homepage+"</p>");
  out.println("<p> - The Pro Java Team. </p>");
  out.println("</body>");
  out.println("</html>");
  
  out.close();

}
catch(Exception ex)
{
ex.printStackTrace();
}  

  
      
        // 返回对象的输出类型为text/html
      
  }
}
 
可是还是出现数据库连接不上的情况,难道javabean不是这么用么,请帮帮我,谢谢