Eclipse使用(七)—— 使用Eclipse创建JavaWeb项目并使用JDBC连接数据库实现简单的登陆注册功能
2018-01-02 22:09
1511 查看
本项目继承于: Eclipse使用(六)—— 使用Eclipse创建JavaWeb项目
一、创建数据库表(这里使用的是Mysql5.7)
DDL语句如下:plain copy
CREATE TABLE `tb_user` (
`u_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号',
`u_username` varchar(30) NOT NULL COMMENT '用户名',
`u_password` varchar(30) NOT NULL COMMENT '密码',
PRIMARY KEY (`u_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
二、项目需要使用的jar示例
三、编写持久层和业务层代码
项目src目录结构预览:
1、在src目录下创建com.mengfei.entity包,并在包中创建实体类User
package com.mengfei.entity; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private Integer uid; private String username; private String password; public Integer getUid() { return uid; } public void setUid(Integer uid) { this.uid = uid; } 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; } @Override public String toString() { return "User{" + "uid=" + uid + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
2、在com.mengfei包中创建dao包,并在包中创建类BaseDao
package com.mengfei.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDao { protected Connection conn; protected PreparedStatement ps; protected ResultSet rs; public Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useSSL=false", "alex", "123"); //Class.forName("oracle.jdbc.driver.OracleDriver"); //conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "alex", "123"); /** * com.mysql.jdbc.Driver是创建连接的驱动类,Oracle使用的是oracle.jdbc.driver.OracleDriver * jdbc:mysql://localhost:3306/demo?useSSL=false是要连接的url地址,Oracle使用的是jdbc:oracle:thin:@localhost:1521:orcl * localhost代表本地连接,如果使用远程连接则要改成IP地址 * demo是要连接的mysql中数据库的名字,Oracle中用的是实例orcl * ?useSSL=false是参数,不写也能连接,Oracle中不需要 * alex是要连接的用户名 * 123是用户的密码 */ } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public void closeDB(ResultSet rs, PreparedStatement ps, Connection conn) { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 测试是否连接上数据库 public static void main(String[] args) { BaseDao dao = new BaseDao(); System.out.println(dao.getConnection()); } }
3、在com.mengfei.dao包中创建接口UserDao
package com.mengfei.dao; import com.mengfei.entity.User; public interface UserDao { /** * 用户注册 * @param user * @return */ Integer register(User user); /** * 用户登陆 * @param user * @return */ User login(User user); }
4、在com.mengfei.dao包中创建impl包,并在包中创建类UserDaoImpl,该类继承BaseDao,实现UserDao
package com.mengfei.dao.impl; import java.sql.SQLException; import com.mengfei.dao.BaseDao; import com.mengfei.dao.UserDao; import com.mengfei.entity.User; public class UserDaoImpl extends BaseDao implements UserDao { @Override public Integer register(User user) { int row = 0; conn = getConnection(); String sql = "insert into tb_user(u_username,u_password) values(?,?)"; try { ps = conn.prepareStatement(sql); ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); row = ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { closeDB(rs, ps, conn); } return row; } @Override public User login(User user) { User u=null; conn=getConnection(); String sql="select * from tb_user where u_username=? and u_password=?"; try { ps=conn.prepareStatement(sql); ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); rs = ps.executeQuery(); while(rs.next()){ u=new User(); u.setUid(rs.getInt(1)); u.setUsername(rs.getString(2)); u.setPassword(rs.getString(3)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { closeDB(rs, ps, conn); } return u; } }
5、在com.mengfei包中创建biz包,并在包中创建接口UserBiz
package com.mengfei.biz; import com.mengfei.entity.User; public interface UserBiz { /** * 用户注册 * @param username * @param password * @return */ Boolean register(String username, String password); /** * 用户登陆 * @param username * @param password * @return */ User login(String username, String password); }
6、在com.mengfei.biz包中创建impl包,并在包中创建类UserBizImpl实现UserBiz
package com.mengfei.biz.impl; import com.mengfei.biz.UserBiz; import com.mengfei.dao.UserDao; import com.mengfei.dao.impl.UserDaoImpl; import com.mengfei.entity.User; public class UserBizImpl implements UserBiz { private UserDao userDao = new UserDaoImpl(); @Override public Boolean register(String username, String password) { User user = new User(); user.setUsername(username); user.setPassword(password); Integer result = userDao.register(user); if (result > 0) { return true; } return false; } @Override public User login(String username, String password) { User user = new User(); user.setUsername(username); user.setPassword(password); User u = userDao.login(user); return u; } }
7、在com.mengfei包中创建servlet包,并在包中创建UserServlet
package com.mengfei.servlet; import java.io.IOException; 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 com.mengfei.biz.UserBiz; import com.mengfei.biz.impl.UserBizImpl; import com.mengfei.entity.User; @WebServlet("/UserServlet") public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { UserBiz userBiz=new UserBizImpl(); String username = request.getParameter("username"); String password = request.getParameter("password"); String operate = request.getParameter("operate"); if(!"".equals(username)&&!"".equals(password)&&!"".equals(operate)) { if("register".equals(operate)) { Boolean b = userBiz.register(username, password); if(b) { request.getRequestDispatcher("success.jsp").forward(request, response); }else { response.sendRedirect("index.jsp"); } }else if("login".equals(operate)) { User user = userBiz.login(username, password); if(null!=user) { request.setAttribute("username", user.getUsername()); request.getRequestDispatcher("success.jsp").forward(request, response); }else { response.sendRedirect("index.jsp"); } }else { response.sendRedirect("index.jsp"); } }else { response.sendRedirect("index.jsp"); } } }
四、编写表现层代码(web.xml文件暂时不用管它)
1、在WebContent目录中创建js目录,将jquery-3.2.1.js文件放进去
2、编写index.jsp(放在WebContext目录下)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script src="js/jquery-3.2.1.js"></script> </head> <body> <form id="form" action="UserServlet" method="post" onsubmit="return checkUser1()"> <input type="hidden" name="operate" id="operate"> 帐号:<input type="text" name="username" id="username"><br> 密码:<input type="password" name="password" id="password"><br> <input type="submit" value="注册"> <input id="login" type="button" value="登陆" onclick="checkUser2()"> </form> </body> </html> <script> //注册使用表单提交事件进行验证提交 function checkUser1() { var username=$('#username').val(); var password=$('#password').val(); if(''==username){ alert('用户名不能为空!'); return false; } if(''==password){ alert('密码不能为空!'); return false; } $('#operate').val('register'); return true; } //登陆使用单击事件进行验证提交 function checkUser2() { var username=$('#username').val(); var password=$('#password').val(); if(''==username){ alert('用户名不能为空!'); return false; } if(''==password){ alert('密码不能为空!'); return false; } $('#operate').val('login'); $('#form').get(0).action='UserServlet'; $('#form').get(0).submit(); } </script>
3、在WebContent目录下创建success.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <c:if test="${empty username}"> 注册成功! </c:if> <c:if test="${!empty username}"> 登陆成功!欢迎 ${username} ! </c:if> </body> </html>
五、部署测试
1、右键点击本地server将项目添加到Tomcat中
2、启动Tomcat,在浏览器中输入localhost:8080/JDBCJavaWebDemo/index.jsp,显示如下图:
OK,到这里就可以自己进行注册和登陆测试啦
相关文章推荐
- Eclipse使用(四)—— 使用Eclipse创建带jar包的Java项目并使用JDBC连接数据库
- 一个完整的Nodejs项目 完成连接数据库(MySQL),登陆、注册功能 session的使用 和发送邮件
- jsp+servlet+ajax+oracle数据库-实现简单的登陆、注册、找回密码功能(与Oralce数据库连接)
- 使用JFinal框架连接数据库,实现注册、登录功能
- eclipse开发工具动态网站项目使用jdbc连接数据库
- eclipse maven整合SSH项目(实现简单的连接数据库实现登录小例子)
- 使用SQLite本地数据库实现注册登陆功能
- Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能
- Eclipse通过jdbc连接数据库制作简单登陆界面
- 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
- 使用数据库sqlite3 C语言实现登陆注册的功能
- 使用数据库sqlite3 C语言实现登陆注册的功能
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- 使用JFinal框架连接数据库,实现注册、登录功能
- 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
- java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现
- 使用纯java jdbc驱动程序实现数据库的连接
- Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录
- JAVA简单链接Oracle数据库,实现注册和登陆的功能
- 通过动态代理(Proxy)实现的数据库连接池的创建连接与归还链接的操作的简单的实现流程