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