Web--(9)案例:网页用户登录,与数据库连接,并验证是否成功

用户输入用户和密码到数据库连接到数据库,验证登录是否正确

  1. 到数据库当中创建一个用户表
    id
    name
    password
    email
  2. 在 JAVA src 下新建 com.iris.domain
  3. 在该包下新建类 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;
	}
}
  1. 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();
			}
		}
	}
}
  1. 在工程文件夹下新建 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=.......
  • 7
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值