//接口
package cm.kgc.demo.dao;
import cm.kgc.demo.pojo.User;
import java.sql.SQLException;
public interface UserDAO {
//注册
public void login(User user) throws SQLException;
//登录(查询)
public User query(User user) throws SQLException;
}
//接口实现类
package cm.kgc.demo.dao;
import cm.kgc.demo.pojo.User;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import java.sql.SQLException;
//实现dao接口的实现类
public class UserDAOImpl implements UserDAO {
private QueryRunner q=new QueryRunner(new ComboPooledDataSource());
@Override
public void login(User user) throws SQLException {
String sql=" insert into user(username,password) values(?,?) ";
q.insert(sql, new BeanHandler<User>(User.class), user.getUsername(), user.getPassword());
}
//查询
@Override
public User query(User user) throws SQLException {
String sql=" select * from user where username=? and password=? ";
return q.query(sql, new BeanHandler<User>(User.class), user.getUsername(), user.getPassword());
}
}
//user 类
package cm.kgc.demo.pojo;
//user类
public class User {
private Integer id;
private String username;
private String password;
public User() {
}
public User( String username, String password) {
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
//配置c3p0连接池
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test1?characterEncoding=utf-8</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">3</property>
<property name="maxPoolSize">20</property>
<property name="minPoolSize">3</property>
<property name="maxIdleTime">150</property>
</default-config>
</c3p0-config>
//配置 servlet
<servlet>
<servlet-name>servlet5</servlet-name>
<servlet-class>cm.kgc.demo.servlet.Servlet5</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet5</servlet-name>
<url-pattern>/servlet5</url-pattern>
</servlet-mapping>
//创建servlet的实现类
package cm.kgc.demo.servlet;
import cm.kgc.demo.dao.UserDAO;
import cm.kgc.demo.dao.UserDAOImpl;
import cm.kgc.demo.pojo.User;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
public class Servlet5 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
HttpServletRequest request=(HttpServletRequest)servletRequest;//向下转型成http协议请求
HttpServletResponse response=(HttpServletResponse)servletResponse;//向下转型成http协议响应请求
String username = request.getParameter("username");//获取html中username的value值
String password = request.getParameter("password");//获取html中password的value值
System.out.println(username+" "+password);
User user=new User(username,password);//创建User类对象传入用户输入的值
UserDAO userDAO=new UserDAOImpl();//创建dao对象调用login方法实行注册
/* try {
userDAO.login(user);
} catch (SQLException e) {
e.printStackTrace();
}*/
User query=null;
try {
query = userDAO.query(user);
} catch (SQLException e) {
e.printStackTrace();
}
//在页面响应
response.setContentType("text/html;charset=utf-8");//设置页面为html 字符格式为utf-8
PrintWriter writer = response.getWriter();//打印流打印结果
//writer.print("注册成功");
if (query!=null){
writer.print("登录成功");
}else{
writer.print("登录失败");
}
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
//用户输入信息页面页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="/servlet5" method="post">
用户名:<input type="text" name="username" ><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
</body>
</html>