1. 工程文件
工作软件我用的是eclipse和MYSQL 8.0
连接数据库用的驱动JDBC.jar一定要有,怎么用网上有教程
2.数据库样式
3.DBUtil.java
package com.imooc.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
//连接数据库
public class DBUtil {
private static final String URI = "jdbc:mysql://localhost:3306/ tbl_user_info?"
+ "user=root&password=123456&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
public static Connection connectDB() throws Exception {
//1、加载数据库驱动
Class.forName(DRIVER);
//2、获取数据库连接
Connection conn = DriverManager.getConnection(URI);
return conn;
}
}
4.UserDao.java
package com.imooc.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.imooc.jdbc.DBUtil;
//工具类
public class UserDao {
public boolean queryByParams(List<Map<String, Object>> params) throws Exception {//查询
Connection conn = DBUtil.connectDB();
StringBuilder sql = new StringBuilder("SELECT * FROM tb_user WHERE 1=1");
for(Map<String, Object> param : params) {
sql.append(" and ");
sql.append(" " +param.get("col")+ " ");
sql.append(" " + param.get("rel") + " ");
sql.append(" " + "'"+param.get("value") + "'"+ " ");
}
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql.toString());
if(rs.next()) {
return true;
}
else{
return false;
}
}
public boolean addUser(UserVO user) throws Exception {//增加
Connection conn = DBUtil.connectDB();
String sql = "INSERT INTO tb_user(username,email,password,sex,address) "
+ " VALUES(?,?,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getEmail());
pstmt.setString(3, user.getPassword());
pstmt.setString(4, user.getSex());
pstmt.setString(5, user.getAddress());
pstmt.execute();
return true;
}
}
5.Login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<title>登录页面</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<script src= "js/angular.min.js"></script>
<!-- CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="header">
<div class="container"> <!-- container 是bootstrap自带响应式样式 页面效果类似于 table-->
<div class="row"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 tr-->
<div class="login logo span4">
<h1><a href="Register.jsp">去注册<span class="red">.</span></a></h1>
</div>
<div class="links span8">
<a class="home" href="html.jsp" data-placement="left" data-original-title="主页"></a>
<a class="blog" href="" data-placement="bottom" data-original-title="Blog"></a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="iphone span5">
<img src="img/iphone.png" alt="">
</div>
<div class="login span6" id="login">
<form name="myForm" action="LoginServlet" method="POST">
<h2>用户 <span class="red"><strong>登录</strong></span></h2>
<label for="username">用户名</label>
<input type="text" id="loginUser" name="username" >
<label for="password">密码</label>
<input type="password" id="loginPsw" name="password" placeholder="choose a password...">
<button type="submit" >登录</button>
</form>
</div>
</div>
<!-- Javascript -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/jquery.backstretch.min.js"></script>
<script src="js/scripts.js"></script>
</body>
</html>
6.LoginServlet.java
package com.imooc.jdbc;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 com.imooc.jdbc.*;
//登录验证
@WebServlet(name = "LoginServlet", urlPatterns = { "/LoginServlet" })
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
doPost(request, response);
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String password = request.getParameter("password");
String flag = request.getParameter("isLogin");
List<Map<String, Object>> params = new ArrayList<Map<String,Object>>();
Map<String, Object> param1 = new HashMap<String, Object>();
param1.put("col", "username");
param1.put("rel", "like");
param1.put("value", name);
params.add(param1);
Map<String, Object> param2 = new HashMap<String, Object>();
param2.put("col", "password");
param2.put("rel", "like");
param2.put("value", password);
params.add(param2);
UserDao dao = new UserDao();
try {
if (dao.queryByParams(params)) {
RequestDispatcher dis = request.getRequestDispatcher("LoginSuc.jsp");
dis.forward(request, response);
}
else {
request.setAttribute( "flag_login","false");
request.getRequestDispatcher("LoginFal.jsp").forward(request,response);
//RequestDispatcher dis = request.getRequestDispatcher("Login2.jsp");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
7.Register.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta chaarset="utf-8">
<title>注册</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<script src= "js/angular.min.js"></script>
<!-- CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="header">
<div class="container"> <!-- container 是bootstrap自带响应式样式 页面效果类似于 table-->
<div class="row"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 tr-->
<div class="register logo span4"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 <td colspan="4">-->
<h1><a href="">注册页面<span class="red">.</span></a></h1>
</div>
<div class="login logo span4">
<h1><a href="Login.jsp">返回登录<span class="red">.</span></a></h1>
</div>
<div class="links span8">
<a class="home" href="" data-placement="left" data-original-title="主页"></a>
<a class="blog" href="" data-placement="bottom" data-original-title="Blog"></a>
</div>
</div>
</div>
</div>
<div class="register-container container">
<div class="row">
<div class="iphone span5">
<img src="img/iphone.png" alt="">
</div>
<div class="login span6" id="login">
<form action="RegisterServlet" method="post">
<h2>注册 <span class="red"><strong>用户</strong></span></h2>
<label for="username">用户名</label>
<input type="text" id="username" name="username" placeholder="enter your username...">
<label for="email">邮箱</label>
<input type="email" id="email" name="email" placeholder="enter your email...">
<label for="password">密码</label>
<input type="password" id="password" name="password" placeholder="choose a password...">
<label for="sex">性别</label>
<input type="text" list="sexList" id="sex" name="sex" placeholder="enter your sex...">
<datalist id="sexList">
<option>男</option>
<option>女</option>
</datalist>
<label for="address">住址</label>
<input type="text" id="address" name="address" placeholder="choose a address...">
<button type="submit">注册</button>
</form>
</div>
</div>
</div>
<!-- Javascript -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/jquery.backstretch.min.js"></script>
<script src="js/scripts.js"></script>
</body>
</html>
8.RegisterServlet.java
package com.imooc.jdbc;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 com.imooc.jdbc.*;
//注册验证
@WebServlet(name = "RegisterServlet", urlPatterns = { "/RegisterServlet" })
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
doPost(request, response);
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
String sex = request.getParameter("sex");
String Address = request.getParameter("Address");
//String flag = request.getParameter("isLogin");
UserVO user = new UserVO();
user.setUsername(name);
user.setEmail(email);
user.setPassword(password);
user.setSex(sex);
user.setAddress(Address);
UserDao dao = new UserDao();
try {
if(dao.addUser(user)) {
RequestDispatcher dis = request.getRequestDispatcher("RegisterSuc.jsp");
dis.forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
效果
登录页面
注册页面
参考文章:
https://blog.csdn.net/u011024652/article/details/51753481
https://blog.csdn.net/chineseD/article/details/84720338
第一次完成自己的web项目,感谢大佬