Struts2+AJAX+JQuery 实现用户登入与注册功能
2015-04-17 17:30
525 查看
要求
必备知识
JAVA/Struts2,JS/JQuery,HTML/CSS基础语法。
开发环境
MyEclipse 10
演示地址
演示地址
预览截图(抬抬你的鼠标就可以看到演示地址哦):
关于UI部分请查看下列链接,有详细制作步骤:
利用:before和:after伪类制作CSS3 圆形按钮 含demo
自制“低奢内”CSS3登入表单,包含JS验证,请别嫌弃哦。
自制“低奢内”CSS3注册表单,包含JS验证哦。请别嫌弃,好吗?。
前段时间学校刚学完Struts2-Action篇,又自学了一点AJAX/JQuery,到网上看了一些CSS3知识。突然想要不要干脆做一个用户注册与登入功能。下面是JAVA部分的核心代码, 如果这样的逻辑和大家想的很有出入的话,欢迎拍砖劈斧,呵呵。
UserAction.java
package action; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedList; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import dao.UserDao; import entity.User; public class UserAction extends ActionSupport { private String contentType = "text/html;charset=utf-8"; private User user; private LinkedList<User> users; public LinkedList<User> getUsers() { return users; } public void setUsers(LinkedList<User> users) { this.users = users; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } /** * 查询用户 登入验证 * @return * @throws IOException */ public void select() throws IOException{ //指定输出内容类型和编码 ServletActionContext.getResponse().setContentType(contentType); //获取输出流,然后使用 PrintWriter out = null; out = ServletActionContext.getResponse().getWriter(); this.user=new UserDao().select(user); //给this.user赋值 if(user==null){ out.print("登入失败"); }else{ ActionContext actionContext=ActionContext.getContext(); actionContext.getSession().put("user",user); actionContext.getSession().put("users",new UserDao().getList()); out.print("登入成功"); } out.flush(); out.close(); } /** * 添加用户控制器 * @throws Exception */ public void add() throws IOException{ //指定输出内容类型和编码 ServletActionContext.getResponse().setContentType(contentType); //获取输出流,然后使用 PrintWriter out = null; out = ServletActionContext.getResponse().getWriter(); int rs=new UserDao().add(this.user); if(rs==1){ ActionContext actionContext=ActionContext.getContext(); actionContext.getSession().put("user",user); actionContext.getSession().put("users",new UserDao().getList()); } out.print(rs); out.flush(); out.close(); //System.out.print(new UserDao().add(this.user)); 这里不能在用 System.out.print() 否则后台报错 } public String upd(){ return null; } public String del(){ return null; } /*@Override public String execute() throws Exception { // TODO Auto-generated method stub return super.execute(); }*/ }
UserDao.java
package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import tools.ConvertJson; import tools.JDBCUtilSingle; import entity.User; public class UserDao { /** * 插入操作 注册功能 * @param user 用户实例 POJO * @return 操作标记 1成功 2邮箱存在 3用户名存在 */ public int add(User user){ Connection connection=null; PreparedStatement statement=null; ResultSet rs=null; connection=JDBCUtilSingle.getInitJDBCUtil().getConnection(); String sql="select * from form2_user where name=? or email=?"; try { statement=connection.prepareStatement(sql); statement.setString(1,user.getName()); statement.setString(2, user.getEmail()); rs=statement.executeQuery(); if(rs.next()){ if(rs.getString("email").equals(user.getEmail())){return 2;} //2邮箱存在 if(rs.getString("name").equals(user.getName())){return 3;} //3用户名存在 } sql="INSERT INTO form2_user (`id`, `email`, `name`, `pass`) VALUES (NULL,?,?,?)"; statement=connection.prepareStatement(sql); statement.setString(1,user.getEmail()); statement.setString(2,user.getName() ); statement.setString(3, user.getPass()); statement.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ JDBCUtilSingle.getInitJDBCUtil().closeConnection(rs, statement, connection); } return 1; //1表示成功注册 } /** * 用户登录 放回登入用户对象信息 * @param user 用户对象 * @return */ public User select(User user){ Connection connection=null; PreparedStatement statement=null; ResultSet rs=null; User myUser=null; connection=JDBCUtilSingle.getInitJDBCUtil().getConnection(); String sql="select * from form2_user where (name=? or email=?) and pass=?"; try { statement=connection.prepareStatement(sql); statement.setString(1,user.getName()); statement.setString(2,user.getName()); statement.setString(3,user.getPass()); rs=statement.executeQuery(); if(rs.next()){ myUser=new User(); myUser.setName(rs.getString("name")); myUser.setEmail(rs.getString("email")); myUser.setPass(rs.getString("pass")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBCUtilSingle.getInitJDBCUtil().closeConnection(rs, statement, connection); } return myUser; } /** * 获取所有用户信息 * @return 用户集合 */ public LinkedList<User> getList(){ Connection connection=null; PreparedStatement statement=null; ResultSet rs=null; User myUser=null; LinkedList<User> users=new LinkedList<User>(); connection=JDBCUtilSingle.getInitJDBCUtil().getConnection(); String sql="select * from form2_user"; try { statement=connection.prepareStatement(sql); rs=statement.executeQuery(); while(rs.next()){ myUser=new User(rs.getString("email"),rs.getString("name"), rs.getString("pass")); users.add(myUser); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBCUtilSingle.getInitJDBCUtil().closeConnection(rs, statement, connection); } return users; } }
User.java
package entity; public class User { private String email; private String name; private String pass; public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public User(){} public User(String email,String name, String pass){ this.email=email; this.name=name; this.pass=pass; } }
呵呵,又结束了,不知到你们看懂了没。请原谅童鞋我目前的表述能力只能到这了。欢迎大家来拍砖来劈斧,希望我幼小的心灵能抗得住。
相关文章推荐
- jQuery+Ajax用户登录功能的实现
- node.js后台jquery前台-- 实现用户登录注册AJAX交互
- struts2 json 与jquery整合实现ajax,用户注册校验
- js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
- JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- jsp+Struts2.0+jquery+ajax功能实现
- jQuery+ajax+php实现注册登录功能
- jquery+jsp+servlet+ajax实现注册功能,ajax校验用户名、验证码等
- jQuery-Ajax用户登录功能的实现
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- Struts 2 Jquery 实现Ajax功能
- struts2+hibernate4.1+spring4.1+ajax+HTML+css暂时实现登录注册功能
- jQuery+Ajax用户登录功能的实现
- jquery中用$.ajax实现注册(html、jquery、php、接口文档)、ajax验证用户提交数据
- jQuery+Ajax用户登录功能的实现
- Ajax实现用户注册功能
- ASP.NET jQuery 食谱12 (通过使用jQuery validation插件简单实现用户注册页面验证功能)
- Struts2+AJAX+JQuery 实现用户登入与注册功能。
- jquery+jsp+servlet+ajax实现注册功能,ajax校验用户名、验证码等(转自他人)