首页 > 代码库 > 【struts2】用户注册系统
【struts2】用户注册系统
最近写了一个用户注册系统,大部分已经写完,但是还有一些边角料没写,但是也都是大同小异,我就不再写了,赶着去学习hibernate了,spring还没接触呢!!!时间好紧迫啊!!!
jsp界面
users的jsp界面
admin的jsp界面
struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!--<constant name="struts.i18n.encoding" value=http://www.mamicode.com/"GBK" /> 指定字符编码 >
sql文件
create database reg; create table `reg`.`users` ( `id` int not null, `username` varchar(20) not null, `password` varchar(20) not null, `name` varchar(20) not null, `nic` varchar(30) not null, `sex` char(2) not null, `age` int null, `email` varchar(30) null, `phone` varchar(20) null, `selfshow` varchar(300) null, primary key (`id`) ); create table `reg`.`admin` ( `id` int, `username` varchar(20) not null, `password` varchar(20) not null, `name` varchar(20) not null, `qx` int not null, primary key (`id`) ); select * from users; ALTER TABLE `reg`.`users` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ; insert into `users` (`username`, `password`, `name`, `nic`, `sex`, `age`, `email`, `phone`, `selfshow`) VALUES ('e', 'er', 'qw', 'we', 'w', '1', 'we', 'r', 'www'); use reg; select * from `reg`.`users` where username = "xiaofeng"; update users set password="998", name="xiaoming", nic="xiaoxiao", sex="妖", age=998, email="dei!yaojing@163.com", phone="120110198", selfshow="嘚!妖怪!!!哪里跑,交出命来~~~~" where username="e" and id="5"; --#关于管理员那个表的SQL语句 INSERT INTO `reg`.`admin` (`id`, `username`, `password`, `name`, `qx`) VALUES (NULL, 'xiaofeng', 'xiaofeng', 'xiaofeng', '998'); --#把id设置为自动增长 ALTER TABLE `reg`.`admin` change column id id int(11) not null auto_increment; select * from admin where username="xiaofeng" and password="xiaofeng"; select * from admin; INSERT INTO `reg`.`admin` (`username`, `password`, `name`, `qx`) VALUES ('xujuan', 'xujuan', 'xujuan', '2'); INSERT INTO `reg`.`admin` (`username`, `password`, `name`, `qx`) VALUES ('yanyan', 'yanyan', 'yanyan', '2'); insert into admin (`username`, `password`, `name`, `qx`) values ('X', 'X', 'X先生', '1'); insert into admin (`username`, `password`, `name`, `qx`) values ('y', 'y', 'y先生', '1'); insert into admin (`username`, `password`, `name`, `qx`) values ('z', 'z', 'z先生', '1'); delete from admin where id=7;
action包
usersaction
adminaction
dao包
usersdao
/** * 书本:【struts2】+【hibernate】+【Spring】整合开发技术详解 * 功能:用户注册系统 * 文件:DatabaseDAO.java * 时间:2014年11月11日21:36:01 * 作者:cutter_point */ package com.huizhi.users.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.huizhi.database.DatabaseDAO; import com.huizhi.vo.Users; public class UsersDAO { private Connection con; //定义连接对象 private PreparedStatement pt; //定义预处理对象 private ResultSet rs; //定义结果集对象 //更新数据的方法 public int update(Users users) { int i = 0; con = DatabaseDAO.getConnection(); //获得连接对象 String sql = "update users set password=?, name=?, nic=?, sex=?, age=?, email=?, phone=?, "+ "selfshow=? where username=? and id=?;"; try { //得到预处理对象 pt = con.prepareStatement(sql); pt.setString(1, users.getPassword()); pt.setString(2, users.getName()); pt.setString(3, users.getNic()); pt.setString(4, users.getSex()); pt.setInt(5, users.getAge()); pt.setString(6, users.getEmail()); pt.setString(7, users.getPhone()); pt.setString(8, users.getSelfshow()); pt.setString(9, users.getUsername()); pt.setInt(10, users.getId()); //执行数据更新 i = pt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } //返回取得的数据 return i; } //查找个人信息的方法 public Users selectInfo(String username) { Users users = new Users();//存放从数据库取得的数据 con = DatabaseDAO.getConnection(); //取得数据库连接 //根据用户名取得数据 String sql = "select * from users where username = ? "; try { //得到预处理对象 pt = con.prepareStatement(sql); pt.setString(1, username); //System.out.println("--------------------------"+username); //执行SQL语句得到结果 rs = pt.executeQuery(); //取得第一行数据 if(rs.next()) { users.setId(rs.getInt(1)); users.setUsername(rs.getString(2)); users.setPassword(rs.getString(3)); users.setName(rs.getString(4)); users.setNic(rs.getString(5)); users.setSex(rs.getString(6)); users.setAge(rs.getInt(7)); users.setEmail(rs.getString(8)); users.setPhone(rs.getString(9)); users.setSelfshow(rs.getString(10)); } } catch (SQLException e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } //返回取得的数据 return users; } //查找到所有的用户 public List findAllUsers() { List<Users> list = new ArrayList<Users>(); //用一个list对象来添加所有的对象 //连接数据库 con = DatabaseDAO.getConnection(); try { String sql = "select * from users"; //为了获得所有的对象 pt = con.prepareStatement(sql); //预处理 rs = pt.executeQuery(); //获得结果集 while(rs.next())//取得结果 { Users users = new Users(); //这个得放到这里,不然每次放到list的都是同一个对象 users.setId(rs.getInt(1)); //得到第一个参数信息 users.setUsername(rs.getString(2)); users.setPassword(rs.getString(3)); users.setName(rs.getString(4)); users.setNic(rs.getString(5)); users.setSex(rs.getString(6)); users.setAge(rs.getInt(7)); users.setEmail(rs.getString(8)); users.setPhone(rs.getString(9)); users.setSelfshow(rs.getString(10)); list.add(users); } } catch (Exception e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } return list; } //验证登录的代码 public boolean login(Users users) { //设置标准符为flag boolean flag=false; //建立数据库连接 con = DatabaseDAO.getConnection(); try { String sql = "select * from users where username = ? and password = ?"; pt = con.prepareStatement(sql); pt.setString(1, users.getUsername()); pt.setString(2, users.getPassword()); rs = pt.executeQuery(); //得到结果集 if(rs.next()) //如果验证成功,那么就设置为true { flag = true; } } catch (Exception e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } return flag; } //保存一个用户 public int save(Users users) { int i = 0; con = DatabaseDAO.getConnection(); //得到连接 try { String sql = "insert into `users` (`username`, `password`, `name`, `nic`, `sex`, `age`, `email`, `phone`, `selfshow`) "+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);"; pt = con.prepareStatement(sql); pt.setString(1, users.getUsername()); pt.setString(2, users.getPassword()); pt.setString(3, users.getName()); pt.setString(4, users.getNic()); pt.setString(5, users.getSex()); System.out.println(users.getSex()+" ----------------------"); pt.setInt(6, users.getAge()); pt.setString(7, users.getEmail()); pt.setString(8, users.getPhone()); pt.setString(9, users.getSelfshow()); i = pt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } return i; } //查找用户是否存在 public boolean findUsers(String username) { //定义Boolean类型标识符flag boolean flag=false; //取得连接 con=DatabaseDAO.getConnection(); try { pt = con.prepareStatement("select * from users where username = ?"); pt.setString(1, username); //为参数赋值 rs = pt.executeQuery(); //执行查询得到结果 //如果继续可以得到数据说明数据存在 if(rs.next()) { flag=true; } } catch (Exception e) { e.printStackTrace(); } finally { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } return flag; //返回标识,true说明是用户已经存在 } }/** * 书本:【struts2】+【hibernate】+【Spring】整合开发技术详解 * 功能:管理员对数据库的操作 * 文件:AdminDAO.java * 时间:2014年11月19日21:41:23 * 作者:cutter_point */ package com.huizhi.admin.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import java.util.ArrayList; import com.huizhi.database.DatabaseDAO; import com.huizhi.vo.Admin; public class AdminDAO { private Connection con; //定义连接对象 private PreparedStatement pt; //定义预处理对象 private ResultSet rs; //定义结果集对象 //更具id删除管理员 public boolean deleteAdminById(int id) { con = DatabaseDAO.getConnection(); //取得连接 boolean flag = false; String sql = "delete from admin where id=?"; try { //预处理 pt = con.prepareStatement(sql); pt.setInt(1, id); int i = pt.executeUpdate(); //删除返回删除的个数 if(i > 0) flag = true; } catch (Exception e) { e.printStackTrace(); } finally { this.close(); } return flag; } //取出所有的管理员 public List findAllAdmin() { List<Admin> list = new ArrayList<Admin>(); //用一个list对象来添加所有的对象 //连接数据库 con = DatabaseDAO.getConnection(); try { String sql = "select * from admin"; //为了获得所有的对象 pt = con.prepareStatement(sql); //预处理 rs = pt.executeQuery(); //获得结果集 while(rs.next())//取得结果 { Admin admin = new Admin(); //这个得放到这里,不然每次放到list的都是同一个对象 admin.setId(rs.getInt(1)); admin.setUsername(rs.getString(2)); admin.setPassword(rs.getString(3)); admin.setName(rs.getString(4)); admin.setQx(rs.getInt(5)); list.add(admin); } } catch (Exception e) { e.printStackTrace(); } finally { this.close(); } return list; } //验证管理员登录 public boolean login(Admin admin) { boolean flag = false; con = DatabaseDAO.getConnection(); //取得连接 String sql = "select * from admin where username=? and password=?;"; try { pt = con.prepareStatement(sql); pt.setString(1, admin.getUsername()); pt.setString(2, admin.getPassword()); rs = pt.executeQuery(); //执行命令 if(rs.next()) { flag = true; admin.setQx(rs.getInt("qx")); } } catch (SQLException e) { e.printStackTrace(); } finally { this.close(); } return flag; } public void close() //关闭连接 { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } }admindao
/** * 书本:【struts2】+【hibernate】+【Spring】整合开发技术详解 * 功能:管理员对数据库的操作 * 文件:AdminDAO.java * 时间:2014年11月19日21:41:23 * 作者:cutter_point */ package com.huizhi.admin.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import java.util.ArrayList; import com.huizhi.database.DatabaseDAO; import com.huizhi.vo.Admin; public class AdminDAO { private Connection con; //定义连接对象 private PreparedStatement pt; //定义预处理对象 private ResultSet rs; //定义结果集对象 //更具id删除管理员 public boolean deleteAdminById(int id) { con = DatabaseDAO.getConnection(); //取得连接 boolean flag = false; String sql = "delete from admin where id=?"; try { //预处理 pt = con.prepareStatement(sql); pt.setInt(1, id); int i = pt.executeUpdate(); //删除返回删除的个数 if(i > 0) flag = true; } catch (Exception e) { e.printStackTrace(); } finally { this.close(); } return flag; } //取出所有的管理员 public List findAllAdmin() { List<Admin> list = new ArrayList<Admin>(); //用一个list对象来添加所有的对象 //连接数据库 con = DatabaseDAO.getConnection(); try { String sql = "select * from admin"; //为了获得所有的对象 pt = con.prepareStatement(sql); //预处理 rs = pt.executeQuery(); //获得结果集 while(rs.next())//取得结果 { Admin admin = new Admin(); //这个得放到这里,不然每次放到list的都是同一个对象 admin.setId(rs.getInt(1)); admin.setUsername(rs.getString(2)); admin.setPassword(rs.getString(3)); admin.setName(rs.getString(4)); admin.setQx(rs.getInt(5)); list.add(admin); } } catch (Exception e) { e.printStackTrace(); } finally { this.close(); } return list; } //验证管理员登录 public boolean login(Admin admin) { boolean flag = false; con = DatabaseDAO.getConnection(); //取得连接 String sql = "select * from admin where username=? and password=?;"; try { pt = con.prepareStatement(sql); pt.setString(1, admin.getUsername()); pt.setString(2, admin.getPassword()); rs = pt.executeQuery(); //执行命令 if(rs.next()) { flag = true; admin.setQx(rs.getInt("qx")); } } catch (SQLException e) { e.printStackTrace(); } finally { this.close(); } return flag; } public void close() //关闭连接 { //关闭所有资源 DatabaseDAO.closeRs(rs); //关闭相应的资源 DatabaseDAO.closePt(pt); //关闭PreparedStatement DatabaseDAO.closeCon(con); //关闭数据库连接 } }database包
/** * 书本:【struts2】+【hibernate】+【Spring】整合开发技术详解 * 功能:用户注册系统 * 文件:DatabaseDAO.java * 时间:2014年10月22日16:33:46 * 作者:cutter_point */ package com.huizhi.database; import java.sql.Connection; //import java.sql.*; import java.sql.Statement; import java.sql.PreparedStatement; import java.sql.DriverManager; import java.sql.ResultSet; public class DatabaseDAO //数据库连接类 { private static Connection con; //连接对象Connection private static final String DRIVER="com.mysql.jdbc.Driver"; //数据库驱动 private static final String URL="jdbc:mysql://localhost/reg"; //数据库的名字是reg private static final String NAME="root"; //连接MySQL的用户名 private static final String PASSWORD="xiaofeng2014"; //连接的密码 //这是一个单例模式,加载一次即可获得驱动 static { try { Class.forName(DRIVER); //加载驱动 } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() //获取数据库连接 { try { con=DriverManager.getConnection(URL, NAME, PASSWORD); } catch (Exception e) { e.printStackTrace(); } return con; } //关闭连接 public static void closeCon(Connection con) { try { if(con != null) con.close(); } catch (Exception e) { e.printStackTrace(); } } //关闭PreparedStatement public static void closePt(PreparedStatement pt) { try { if(pt != null) pt.close(); } catch (Exception e) { e.printStackTrace(); } } //关闭ResultSet public static void closeRs(ResultSet rs) { try { if(rs != null) rs.close(); } catch (Exception e) { e.printStackTrace(); } } }util包
/** * 书本:【struts2】+【hibernate】+【Spring】整合开发技术详解 * 功能:用户注册系统,这个是写的一个拦截器 * 文件:AuthorityInterceptor.java * 时间:2014年10月22日16:33:46 * 作者:cutter_point */ package com.huizhi.util; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class AuthorityInterceptor extends AbstractInterceptor { public String intercept(ActionInvocation invocation) throws Exception //拦截Action处理的拦截方法 { ActionContext ctx = invocation.getInvocationContext(); //取得ActionContext实例 Map session = ctx.getSession(); //得到session对象 String username = (String)session.get("username"); if(username != null) { //表示用户已经登录 System.out.println("拦截通过"); return invocation.invoke(); //继续执行 } System.out.println("登录拦截"); ctx.put("tip", "请先登录!!!"); return Action.LOGIN; } }vo包
admin
package com.huizhi.vo; public class Admin { private int id; private String username; private String password; private String name; private int qx; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getQx() { return qx; } public void setQx(int qx) { this.qx = qx; } }
users
package com.huizhi.vo; public class Users { private int age; private String email; private int id; private String name; private String nic; private String password; private String phone; private String selfshow; private String sex; private String username; public int getAge() { return age; } public String getEmail() { return email; } public int getId() { return id; } public String getName() { return name; } public String getNic() { return nic; } public String getPassword() { return password; } public String getPhone() { return phone; } public String getSelfshow() { return selfshow; } public String getSex() { return sex; } public String getUsername() { return username; } public void setAge(int age) { this.age = age; } public void setEmail(String email) { this.email = email; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setNic(String nic) { this.nic = nic; } public void setPassword(String password) { this.password = password; } public void setPhone(String phone) { this.phone = phone; } public void setSelfshow(String selfshow) { this.selfshow = selfshow; } public void setSex(String sex) { this.sex = sex; } public void setUsername(String username) { this.username = username; } }断断续续,最终还是给写完了,真是蛋疼,这个课设马上要来了,得抓紧时间了!!!!fightting!!!
项目已经上传:http://download.csdn.net/detail/cutter_point/8181327
这里还有一个struts2的BBS论坛项目有兴趣可以看一下:http://download.csdn.net/detail/cutter_point/8142957
【struts2】用户注册系统
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。