数据库
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
)
1,导入相关jar包
找不到相关包可在中央仓库直接搜索下载
2,数据库连接池之—c3p0配置
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="c3p0">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/库名</property>
<property name="user">用户名</property>
<property name="password">密码</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
</named-config>
</c3p0-config>
3,工具类
package com.guan.utils;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JdbcUtils {
private static DataSource ds = null;
static {
ds = new ComboPooledDataSource("c3p0");
}
public static DataSource getDataSource() {
return ds;
}
}
4,实体类
package com.guan.bean;
public class User {
private int id;
private String username;
private String password;
public User(int id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
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;
}
}
业务逻辑
package com.guan.service;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import com.guan.bean.User;
import com.guan.utils.JdbcUtils;
public class JdbcService {
public static QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
//登录
public User login(String username, String password) {
User u = null;
try {
String sql = "select * from user where username=? and password=?";
u = qr.query(sql, new BeanHandler<User>(User.class), username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return u;
}
//注册
public int register(String username, String password) {
int row = 0;
try {
String sql = "insert into user values(null,?,?)";
row = qr.update(sql,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
return row;
}
//修改
public int update(String username, String password) {
int row = 0;
try {
String sql = "update user set password=? where username=?";
row = qr.update(sql,password,username);
} catch (SQLException e) {
e.printStackTrace();
}
return row;
}
}
用户界面
1,rejister.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
<style type="text/css">
.divbox {
width: 1500px;
height: 800px;
/* border: 2px solid pink;*/
}
.divimg {
/* border: 2px solid pink;*/
float: left;
/*background: url(img/0.jpg);*/
}
#texta {
font-size: 20px;
}
#textb {
font-size: 20px;
margin-left: 80px;
}
.divinput {
width: 800px;
height: 800px;
float: right;
}
.divheadimg {
width: 800px;
height: 200px;
float: right;
}
.divuser {
width: 600px;
height: 580px;
margin: 200px;
margin-left: 0px;
}
.divuser>input {
width: 400px;
height: 55px;
/* border: 2px solid pink; */
border-radius: 20px;
margin-top: 35px;
padding-left: 20px;
}
.divuser>select {
width: 210px;
height: 55px;
border: 2px solid gray;
border-radius: 20px;
margin-top: 35px;
}
.divuser>button {
width: 420px;
height: 55px;
border: 2px solid gray;
border-radius: 20px;
margin-top: 45px;
}
</style>
<script type="text/javascript">
onload = function() {
count = 0;
imgobj = document.getElementById("image");
time = setInterval("changeimg()",4000);
}
// 实现图片轮播
function changeimg() {
if (count == 2) {
count = -1;
}
imgobj.src = "imageqq/" + (++count) + ".jpg";
}
function select(n) {
var arr = new Array();
c = document.getElementById("capitalcity");
// c.length=1;长度唯一,只能选一个
c.innerHTML = "<option> ---请选择城市--- </option>";
arr[0] = new Array("淮南", "合肥", "芜湖");
arr[1] = new Array("杭州", "嘉兴", "义务");
arr[2] = new Array("南通", "无锡", "镇江");
arr[3] = new Array("宝山", "浦东", "静安");
var cities = arr[n];
for (var i = 0; i < cities.length; i++) {
var city = cities[i];
//创建元素option对象
var option = document.createElement("option");
//创建文本节点用于盛放文本内容
var textnode = document.createTextNode(city);
//把带有数据的文本节点放到option中
option.appendChild(textnode);
// 把option放到select中
c.appendChild(option);
}
}
</script>
</head>
<body>
<div class="divbox">
<div class="divimg">
<img src="imageqq/0.jpg" id="image" width="500px" />
</div>
<form action="/Tom_server/register" >
<div class="divinput">
<div class="divheadimg">
<h1>欢迎注册!</h1>
<a id="texta">每一天乐在沟通</a>
<a id="textb" href="https://ssl.zc.qq.com/v3/index-chs.html?type=3">选择靓号</a>
</div>
<div class="divuser">
<input type="text" name="username" placeholder="昵称">
<input type="password" name="password" placeholder="密码">
<input type="text" name="phonenumber" placeholder="手机号码">
<select onchange="select(this.value)">
<option> ---请选择省份--- </option>
<option value="0">安徽省</option>
<option value="1">浙江省</option>
<option value="2">江苏省</option>
<option value="3">上海市</option>
</select>
<select id="capitalcity">
<option> ---请选择城市--- </option>
</select>
<button>注册</button>
</div>
</div>
</form>
</div>
</body>
</html>
2,login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
<style type="text/css">
.divimg {
/* border: 2px solid pink;*/
float: left;
/*background: url(img/0.jpg);*/
}
#texta {
font-size: 20px;
text-decoration: none;
}
#textb {
font-size: 20px;
margin-left: 180px;
text-decoration: none;
}
#textc {
font-size: 20px;
margin-left: 400px;
text-decoration: none;
}
.divinput {
width: 550px;
height: 600px;
/* border: 4px solid gray; */
border-radius: 40px;
position: absolute;
top: 20%;
left: 60%;
}
.divheadimg {
width: 500px;
height: 100px;
float: right;
}
.divuser {
width: 500px;
height: 500px;
border:none;
margin: 200px;
margin-left: 0px;
}
.divuser>input {
width: 400px;
height: 55px;
/* border: 2px solid gray; */
border-radius: 20px;
margin-top: 35px;
padding-left: 20px;
margin-left: 100px;
background: rgba(64, 128, 245, 0.1);
}
.divuser>button {
width: 320px;
height: 55px;
border: 2px solid gray;
border-radius: 20px;
margin-top: 45px;
margin-left: 140px;
background: rgba(164, 218, 245, 0.8);
}
</style>
<script type="text/javascript">
onload = function() {
count = 0;
imgobj = document.getElementById("image");
time = setInterval("changeimg()", 4000);
}
// 实现图片轮播
function changeimg() {
if (count == 2) {
count = -1;
}
imgobj.src = "imgb/" + (++count) + ".jpg";
changecolor();
}
</script>
</head>
<body>
<div class="divimg">
<img src="imgb/0.jpg" id="image" style="width: 1600px ;height:1000px" />
<form action="/Tom_server/login">
<div class="divinput">
<div class="divheadimg">
<h1>欢迎登录!</h1>
<a id="texta">每一天乐在沟通</a>
<a id="textb" href="https://blog.csdn.net/G_JD1234">找你关哥</a>
</div>
<div class="divuser">
<input type="text" name="username" placeholder="昵称"/>
<input type="password" name="password" placeholder="密码"/>
<button>登录</button>
<a id="textc" href="https://aq.qq.com/v2/uv_aq/html/reset_pwd/pc_reset_pwd_input_account.html?v=3.0&old_ver_account=">忘记密码?</a>
</div>
</div>
</form>
</div>
</body>
</html>
servlet
###1,loginservlet
package com.guan.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.guan.bean.User;
import com.guan.service.JdbcService;
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
JdbcService service = new JdbcService();
RequestDispatcher dispatcher = null;
String user = request.getParameter("username");
String pass = request.getParameter("password");
User u = null;
u = service.login(user, pass);
if (u != null) {
dispatcher = request.getRequestDispatcher("update.jsp");
dispatcher.forward(request, response);
} else {
dispatcher = request.getRequestDispatcher("error.jsp");
dispatcher.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
2,registerservlet
package com.guan.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.guan.service.JdbcService;
public class RegisterServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
JdbcService service = new JdbcService();
RequestDispatcher dispatcher = null;
String username = request.getParameter("username");
String password = request.getParameter("password");
int row = service.register(username, password);
if (row > 0) {
dispatcher = request.getRequestDispatcher("login.jsp");
dispatcher.forward(request, response);
} else {
dispatcher = request.getRequestDispatcher("error.jsp");
dispatcher.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
结果
在这里插入图片描述