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不是这么用么,请帮帮我,谢谢