1 新建数据库,并创建表
2 新建动态网站项目,在WebContent目录下的lib里面添加引用包C3p0,dbutils,mysql驱动
3 在src目录下添加c3p0配置文件,并修改
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///web12</property>
</default-config>
</c3p0-config>
4 在WebContent下面新建Login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/web12/login" method="post">
用户名<input type="text" name="username"/><br>
密码<input type="password" name="password" /><br>
<input type="submit" value="submit" /><br>
</form>
</body>
</html>
5.在src新建com.dxm.servlet包,并创建类
package com.dxm.login;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import com.dxm.domain.User;
import com.dxm.utils.DataSourceUtils;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from user where username=? and password=?";
try {
User user = runner.query(sql, new BeanHandler<>(User.class), username,password);
if (user !=null) {
response.getWriter().write("success");
} else {
response.getWriter().write("fail");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
6 在src下面添加com.dxm.domain包,并创建类
package com.dxm.domain;
public class User {
private int Id;
private String username;
private String password;
private String email;
public int getId() {
return Id;
}
public void setId(int id) {
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
7 在src下面新建com.dxm.utils包,并拷贝进来DataSourceUtils.java
package com.dxm.utils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DataSourceUtils {
private static DataSource dataSource = new ComboPooledDataSource();
private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
public static DataSource getDataSource() {
return dataSource;
}
public static Connection getConnection() throws SQLException {
Connection con = tl.get();
if (con == null) {
con = dataSource.getConnection();
tl.set(con);
}
return con;
}
// 寮�惎浜嬪姟
public static void startTransaction() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.setAutoCommit(false);
}
}
public static void rollback() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.rollback();
}
}
public static void commitAndRelease() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.commit();
con.close();
tl.remove();
}
}
public static void closeConnection() throws SQLException {
Connection con = getConnection();
if (con != null) {
con.close();
}
}
public static void closeStatement(Statement st) throws SQLException {
if (st != null) {
st.close();
}
}
public static void closeResultSet(ResultSet rs) throws SQLException {
if (rs != null) {
rs.close();
}
}
}
8 发布网站后,如下访问,输入用户名密码
9 成功和失败如图