用户输入用户和密码到数据库连接到数据库,验证登录是否正确
- 到数据库当中创建一个用户表
id
name
password
email
- 在 JAVA
src
下新建com.iris.domain
包 - 在该包下新建类
User.java
User.java代码如下
package com.iris.domain;
public class User {
Integer id;
String name;
String pwd;
String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- 在
WebContent
新建index.html
并且服务器运行
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户登录</h1>
<form action="http://localhost:8080/Servlet_note/Login" method="get">
用户名:<input type="text" placeholder="请输入用户名...."> <br/>
密 码:<input type="text" placeholder="请输入密码...."> <br/>
<input type="submit" value="登录">
</form>
</body>
</html>
5. 在 JAVA src
下新建 com.iris.login
包
在该包下 新建注解 Login.java
package com.iris.login;
import java.io.IOException;
import java.sql.SQLException;
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 org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import com.iris.domain.User;
import com.iris.utils.JDBCUtil;
@WebServlet("/Login")
public class Login extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 1.获取请求参数
* 2.使用dbutils连接到数据库
* 3.检查用户名与密码是否正确
* 4.登录成功,显示用户所有信息
* 5.登录失败给一个错误提示
*/
//获取请求参数
String name = request.getParameter("username");
String pwd = request.getParameter("pwd");
System.out.println("name="+name+"password="+pwd);
//连接到数据库
JDBCUtil.getDataSource();
QueryRunner qr = new QueryRunner(JDBCUtil.getDataSource());
String sql = "select * from user where name=? and pwd=?";
User user = null;
try {
user = qr.query(sql, new BeanHandler<User>(User.class),name,pwd);
}catch(SQLException e) {
e.printStackTrace();
}
// 检查登录用户名与密码与数据库是否一致
if(user!=null) {
response.getWriter().write("success===="+user.getName());
}else {
response.getWriter().write("login fail");
}
}
}
如下jar
包放到WebContent/Web-INF/lib
文件夹下,并建立 build-Path
6. 在 JAVA src
下新建 com.iris.utils
包
在该包下新建类 JDBCUtil.java
JDBCUtil.java
package com.iris.utils;
import java.io.FileInputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class JDBCUtil {
public static DataSource ds = null;
static{ //静态代码块
try {
// 加载配置文件
Properties p = new Properties();
//获取服务器字节码目录地址
String path = JDBCUtil.class.getClassLoader().getResource("db.properties").getPath();
System.out.println(path);
FileInputStream in = new FileInputStream(path);
p.load(in);
ds = DruidDataSourceFactory.createDataSource(p);
}catch(Exception e) {
e.printStackTrace();
}
}
//获取数据源
public static DataSource getDataSource() {
return ds;
}
public static Connection getConn() {
try {
//连接数据库
return ds.getConnection();
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection conn,Statement st, ResultSet res) {
//释放资源
if(res !=null){
try {
res.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
if(st !=null){
try {
st.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
- 在工程文件夹下新建
resource
文件夹,在该文件夹下 新建db.properties
数据库连接属性
db.properties
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/servlet_web?useUnicode=true&rewriteBatchedStatements=True&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username=root
password=.......