java简单的MVC实现简单的用户注册与登录
2014-03-06 23:26
866 查看
这是转载自http://www.cnblogs.com/bejour/p/3351920.html感觉很有用,与大家分享。
对初次接触java ee,感觉这个简单的m删除文字格式vc实现的用户登录与注册比较的有参照价值。故记录下来。本篇中的代码源自于《轻量级Java
EE企业应用实战(第三版)》第二章,其原来的代码是实现用户登录,我在它的基础上依照它的写法添加了用户注册。代码很粗陋,但是能用。Model模块代码,实现对数据库中表的操作
contol模块代码,用servlet实现请求的处理及对数据库的查询与修改
View模块,用jsp呈现注册与登录页面,以及成功后的登录页面。
对初次接触java ee,感觉这个简单的m删除文字格式vc实现的用户登录与注册比较的有参照价值。故记录下来。本篇中的代码源自于《轻量级Java
EE企业应用实战(第三版)》第二章,其原来的代码是实现用户登录,我在它的基础上依照它的写法添加了用户注册。代码很粗陋,但是能用。Model模块代码,实现对数据库中表的操作
import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; public class DbDao { private Connection conn; private String driver; private String url; private String username; private String pass; public DbDao(){ } public DbDao(String driver, String url, String username, String pass) { this.driver = driver; this.url = url; this.username = username; this.pass = pass; } public Connection getConn() { return conn; } public void setConn(Connection conn) { 删除文字格式 this.conn = conn; } public String getDriver() { return driver; } public void setDriver(String driver) { this.driver = driver; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } // get database connection public Connection getConnection() throws Exception { if(conn == null){ Class.forName(this.driver); conn = (Connection) DriverManager.getConnection(url, username, this.pass); } return conn; } // insert records public boolean insert(String sql, Object... args) throws Exception{ PreparedStatement pstmt = (PreparedStatement) getConnection().prepareStatement(sql); for(int i = 0; i < args.length; i++) { pstmt.setObject(i + 1, args[i]); } if(pstmt.executeUpdate() != 1) return false; return true; } // execute query public ResultSet query(String sql, Object...args) throws Exception{ PreparedStatement pstmt = (PreparedStatement) getConnection().prepareStatement(sql); for(int i=0; i< args.length; i++) { pstmt.setObject(i+1, args[i]); } return pstmt.executeQuery(); } public void modify(String sql, Object...args) throws Exception{ PreparedStatement pstmt = (PreparedStatement)getConnection().prepareStatement(sql); for(int i = 0; i< args.length; i++) { pstmt.setObject(i+1, args[i]); } pstmt.executeUpdate(); pstmt.close(); } public void closeConn() throws Exception{ if(conn != null && !conn.isClosed()) conn.close(); } }
contol模块代码,用servlet实现请求的处理及对数据库的查询与修改
import java.io.IOException; import java.sql.ResultSet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet(name="login", urlPatterns={"/login"}) public class LoginServlet extends HttpServlet{ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String errMsg = ""; RequestDispatcher rd; String username = request.getParameter("username"); String pass = request.getParameter("pass"); try { DbDao dd = new DbDao("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/test", "root", "root"); // 查询结果集 ResultSet rs = dd.query("select pass from user_table where username = ?", username); if(rs.next()){ //用户名和密码匹配 if(rs.getString("pass").equals(pass)) { //获取session对象 HttpSession session = request.getSession(true); session.setAttribute("name", username); //获取转发对象 rd = request.getRequestDispatcher("/welcome.jsp"); // 转发请求 rd.forward(request, response); } else { errMsg += "您的用户名密码不匹配,请重新输入"; } } else { errMsg += "您的用户名不存在,请先注册"; } }catch(Exception e) { e.printStackTrace(); } // 如果出错,转发到重新登陆 if(errMsg != null && !errMsg.equals("")){ rd = request.getRequestDispatcher("/login.jsp"); request.setAttribute("err", errMsg); rd.forward(request, response); } } }
import java.io.IOException; import java.sql.ResultSet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet(name="register", urlPatterns={"/register"}) public class RegisterServlet extends HttpServlet{ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String errMsg = ""; RequestDispatcher rd; String username = request.getParameter("username"); String pass = request.getParameter("pass"); String conPass = request.getParameter("conPass"); if((username.length()==0)|| (pass.length()==0)||!pass.equals(conPass)) errMsg += "注册失败,请检查用户名和密码非空,并确定密码一致"; else { try { DbDao dd = new DbDao("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/test", "root", "root"); ResultSet rs = dd.query("select pass from user_table where username = ?", username); if(rs.next()) { errMsg += "用户已经存在,请重新设置用户名"; } else { boolean addUser = dd.insert("insert into user_table(username, pass) values(?, ?)",username, pass); if(!addUser) { errMsg += "注册用户出现错误"; } // 注册成功,转发到welcome.jsp HttpSession session = request.getSession(true); session.setAttribute("name", username); //获取转发对象 rd = request.getRequestDispatcher("/welcome.jsp"); // 转发请求 rd.forward(request, response); } }catch(Exception e) { e.printStackTrace(); } } // 如果出错,转发到重新注册 if(errMsg != null && !errMsg.equals("")){ rd = request.getRequestDispatcher("/register.jsp"); request.setAttribute("err", errMsg); rd.forward(request, response); } } }
View模块,用jsp呈现注册与登录页面,以及成功后的登录页面。
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Login</title> </head> <body> <!-- 输出错误提示信息 --> <span style="color:red; font-weight:bold"> <% if(request.getAttribute("err")!=null){ out.println(request.getAttribute("err") + "<br/>"); } %> </span> 请输入用户名和密码: <form id="login" method="post" action="login"> 用户名:<input type="text" name="username" /><br/> 密码 <input type="password" name="pass" /><br/> <input type="submit" value="登陆"/><br/> </form> <a href="register.jsp">注册用户</a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Login</title> </head> <body> <!-- 输出错误提示信息 --> <span style="color:red; font-weight:bold"> <% if(request.getAttribute("err")!=null){ out.println(request.getAttribute("err") + "<br/>"); } %> </span> 请输入用户名和密码: <form id="login" method="post" action="register"> 用户名:<input type="text" name="username" /><br/> 密码 <input type="password" name="pass" /><br/> 确认密码<input type="password" name="conPass" /><br/> <input type="submit" value="注册"/><br/> </form> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Welcome</title> </head> <body> <h2>欢迎登陆, <%=request.getParameter("username") %></h2> </body> </html>这里需要用到mysql数据库,在test数据库中建立user_table表,建表的语句可以如下(但不限于
create table user_table( id int primary key auto_increment, username varchar(20), pass varchar(20) );
相关文章推荐
- java简单的MVC实现简单的用户注册与登录
- java简单的MVC实现简单的用户注册与登录
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- 小白Java求学之路之一:控制台实现用户注册、登录
- JAVA 用于练手的超简单登录注册,jdbc实现【学习笔记】
- 简单实现用户注册,登录的留言簿
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(三)
- JAVA简单实现MD5注册登录加密
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- JSP作业2 - 利用html实现简单的用户登录注册界面
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(一)
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(一)
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
- Java Web基础--用户注册页面的简单实现
- 简单设计实现基于Forms认证的注册登录等用户基础服务
- SpringMVC+mybaits+mysql实现简单的登录注册
- 【Java】基于ArrayList实现的简单登录注册
- JSP作业3 - 使用JSP实现简单的用户登录注册页面