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>
< 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 >
<!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
}
}
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不是这么用么,请帮帮我,谢谢
转载于:https://blog.51cto.com/ndebyq/56800