实现用户注册
首先,写好数据库工具类DBUtils.java和用户实体类User.java,以及数据库操作类UserDao.java。由于UserDao类代码太多,所以按功能分开展示,重复的就不再展示了。
DBUtils:packageutil;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ResourceBundle;
/**
*数据库连接工具类
*/
publicclassDBUtils{
privatestaticStringurl;//数据库连接URL
privatestaticStringusername;//数据库登录用户
privatestaticStringpassword;//数据库登录
privatestaticStringdriverclass;//数据库驱动类
static{
//从properties文件获取数据库连接信息,这样便于维护和安全。
ResourceBundlerb=ResourceBundle.getBundle("dbinfo");
driverclass=rb.getString("driverclass");
url=rb.getString("url");
username=rb.getString("username");
password=rb.getString("password");
try{
Class.forName(driverclass);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
/**
*获取数据库连接方法
*@returnConnection连接对象
*@throwsException
*/
publicstaticConnectiongetConnection()throwsException{
returnDriverManager.getConnection(url,username,password);
}
/**
*完善的释放资源方法
*--若没有结果集,rs传递null即可。
*@paramrs结果集,ResultSet对象
*@paramps执行SQL语句的PreparedStatement对象,使用父类Statement接收
*@paramconnConnection连接对象
*/
publicstaticvoidcloseAll(ResultSetrs,Statementstmt,Connectionconn){
if(rs!=null){
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
rs=null;
}
if(stmt!=null){
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
stmt=null;
}
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
conn=null;
}
}
}
User:packageentity;
/**
*用户对象类(实体类)
*/
publicclassUser{
//用户ID
privateintuserId;
//用户名
privateStringuserName;
//用户账号
privateStringuserAccount;
//用户密码
privateStringuserPassword;
//用户状态,在用户列表显示与否,用于删除用户,起到缓冲备份作用
privateStringuserDisplay;
//记录删除时间,用于管理已删除用户
privateStringuserDeleteTime=null;//默认为空
//get和set方法省略
}
下面就是JSP注册页面,userregister.jsp
pageEncoding="UTF-8"%>
htmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">
用户注册界面
functioncheck(){
if(document.form1.userName.value==""){
alert("请输入用户名!");
returnfalse;
}
if(document.form1.userAccount.value==""){
alert("请输入用户账号!");
returnfalse;
}
if(document.form1.userPassword.value==""){
alert("请输入用户密码");
returnfalse;
}
if(document.form1.userPassword1.value==""){
alert("请输入确认密码!");
returnfalse;
}
if(document.form1.userPassword.value!=document.form1.userPassword1.value){
alert("对不起!确认密码不等于登录密码");
returnfalse;
}
returntrue;
}
注册Servlet,UserRegisterServlet.javapackageservlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importdao.UserDao;
importentity.User;
/**
*用户注册功能Servlet
*/
@WebServlet("/UserRegisterServlet")
publicclassUserRegisterServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
super.doGet(req,resp);
}
@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
resp.setContentType("text/html;charset=UTF-8");
req.getSession();
//获取用户表单数据
StringuserName=req.getParameter("userName");
StringuserAccount=req.getParameter("userAccount");
StringuserPassword=req.getParameter("userPassword");
//实例化用户对象
Useruser=newUser();
user.setUserName(userName);
user.setUserAccount(userAccount);
user.setUserPassword(userPassword);
//添加用户
UserDaoud=newUserDao();
Stringstatus=ud.insertUser(user);
if(status.equals("OK")){
//跳转到登录界面
//Stringpath=resp.encodeURL("userlogin.jsp");
//req.getRequestDispatcher(path).forward(req,resp);
Stringurl=resp.encodeRedirectURL(req.getContextPath()+"/userlogin.jsp");
resp.sendRedirect(url);
}else{
Stringmsg="注册失败,2秒后刷新。";
req.setAttribute("msg",msg);
Stringpath=resp.encodeURL(req.getContextPath()+"/userregister.jsp");
resp.setHeader("refresh","2;url="+path);
}
}
}
数据库操作--添加用户方法:/**
*实现添加用户功能
*@paramuser从表单获取的用户对象
*@return
*/
publicStringinsertUser(Useruser){
//连接数据库
Connectionconn=null;
PreparedStatementps=null;
//将用户数据写入数据库
try{
conn=DBUtils.getConnection();//获取连接对象Connection
Stringsql="INSERTINTOusersVALUES(NULL,?,?,?,'on',NULL)";
ps=conn.prepareStatement(sql);//格式化sql语句
//为?赋值
ps.setString(1,user.getUserName());
ps.setString(2,user.getUserAccount());
ps.setString(3,user.getUserPassword());
ps.executeUpdate();
return"OK";
}catch(SQLExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}finally{
//释放资源
DBUtils.closeAll(null,ps,conn);
}
returnnull;
}
以上就是实现用户注册的功能代码,虽然不是很完善,但会慢慢改善的。