Java web连接数据库实现登录功能 ; jsp连接MySQL或SQL server数据库的jar包也在这里哦!

【深夜放毒,记录生活^_^】

  学了HTML之后 , 一直想写一个能够实现登录功能的小网页 ,终于……现在开始学习数据库,经过查阅资料,创建了很简单的一个java web小项目来实现登陆操作,界面不怎么美观,大家见笑了,哈哈。
  首先,我们先进行准备工作:下载连接数据库的jar包,这里我用百度网盘分享给大家吧 - -> MySQ的jar包点我!提取码:v5sd
      SQL server的点我!提取码:ra6f

下载完之后请记住路径,我们创建一个java web项目,请打开eclipse 新建项目 – >新建一个动态的java web 项目;


在这里插入图片描述
这里我给它起名就叫做Test_01,哈哈
在这里插入图片描述
然后,打开项目,接着依次打开WebContent – > WEB-INF目录
在这里插入图片描述
将刚才下载好的jar包放入其中,我们直接copy过来即可,然后我们发现项目中多了这个,代表导入成功,恭喜你!
在这里插入图片描述
然后我们先利用java文件来连接数据库,打开项目列表中的src文件夹(新建两个包,如下图):
在这里插入图片描述
然后我们在包com.test.dao里面创建两个java文件,一个是Test.java, 一个是UserDao.java
Test.java代码如下:

public class Test {
	
	private int id;
	private String name;
	private int number;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return number;
	}

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

	public void setAge(int age) {
		this.number = age;
	}
	
	private Test()
	{
		
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

UserDao.java代码如下(进行查询,插入,删除,修改操作):
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.chap01.dbuitl.DBConnect;

public class UserDao {
		
		private Test test;

		public Test getTest() {
			return test;
		}


		public void setTest(Test test) {
			this.test = test;
		}


		@SuppressWarnings("null")
		public static void main(String[] args) throws SQLException {
			
			DBConnect dbConnect = new DBConnect();
			Connection connection = dbConnect.getConnection();
			Statement statement = null;
			
			try {
				
				statement = connection.createStatement();
				
			}catch(SQLException e) 
			{
				e.printStackTrace();
			}
			
			ResultSet resultSet = null;
			int resultSet2 = 0;
			
	    	
			String sql2 = "insert into zhang(id) values('8')"; 		//插入
			
			try
			{
				resultSet2 = statement.executeUpdate(sql2);
			}catch(SQLException e)
			{
				e.printStackTrace();
			}
			
			while(resultSet2 > 0)     									//返回值:受影响的行数;
			{
				System.out.println("插入成功!");
				break;
			}
			
			
			String update = "update zhang set name =2 where id = 8"; 	//更新
			int result = 0;
			try
			{
				result = statement.executeUpdate(update);
			}catch(SQLException s)
			{
				s.printStackTrace();
			}
			while(result > 0)
			{
				System.out.println("更新成功!");
				break;
			}
				
			String del = "delete from zhang where id=8";				//刪除
			int ResultSet = 0;
			try
			{
				ResultSet = statement.executeUpdate(del);
			}catch(SQLException d)
			{
				d.printStackTrace();
			}
			
			while(ResultSet > 0)
			{
				System.out.println("刪除成功!");
				break;
			}
			
			
			String sql = "SELECT *FROM zhang where id>0";		
			
			try
			{
				resultSet = statement.executeQuery(sql);
				
			}catch(SQLException e)
			{
				e.printStackTrace();
			}
			
			
			try
			{
				while(resultSet.next())
				{
					int number = resultSet.getInt("id");
					String name = resultSet.getString("name");
					int number2 = resultSet.getInt("number");
					int phone1 = resultSet.getInt("phone1");
					int phone2 = resultSet.getInt("phone2");
					String phone3 = resultSet.getString("mobilePhone");	//verchar 类型的数据直接用String类型的变量接收;
					String home = resultSet.getString("home");
					
					System.out.print("编号: " + number);
					System.out.print(" 名字: " + name);
					System.out.print(" 学号: " + number2);
					System.out.print(" 电话号码: " + phone1 + phone2);
					System.out.print(" 家乡: " + home);
					System.out.println(" 手机号码: " + phone3);
					
				}
				resultSet.close();
			}catch(SQLException q)
			{
				q.printStackTrace();
			}
				
		}

	}

紧接着,我们在com.test.dbutil包中新建Java文件DBConnect.java,代码如下:
package com.chap01.dbuitl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBConnect {
	private static String DBDriver = "com.mysql.jdbc.Driver";
	private static String DBUrl = "jdbc:mysql://localhost:3306/usertest";	//最后面usertest是数据库的名字
	private static String DBUser = "root";
	private static String DBPass = "";		//在这里填写你的密码
	private static Connection connection = null;
	Statement statement = null;
	ResultSet resultSet = null;
	static {
		try {
			Class.forName(DBDriver);
			
			System.out.println("连接数据库中···");
			
		}catch(ClassNotFoundException e)
		{
			e.printStackTrace();
		}
	}
	public static Connection getConnection() { 										//与数据库建立连接的方法
		try {
			connection = DriverManager.getConnection(DBUrl, DBUser, DBPass);
			System.out.println("数据库连接成功");
		
		}catch(SQLException e) {
			
			System.out.println("失败");
			e.printStackTrace();
			
		}
		return connection;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

我们来看一下我的数据库信息:数据库uesrtest中有一个表“zhang”

在这里插入图片描述

表中数据如下:

在这里插入图片描述

我们可以看到有七个字段,对应上面的代码,现在我们运行一下UserDao.java,如下图:

在这里插入图片描述

运行结果如下:

在这里插入图片描述

好的我们数据库连接成功并未已经获取到其中的数据信息,接下来我们要用jsp文件来实现登录的操作,步骤如下:

然后呢,我们打开右击WebContent文件夹,新建几个jsp文件 (login.jsp是登陆页面 , deal.jsp是进行登陆的处理界面,main.jsp是登陆成功的界面,error.jsp是登录失败的界面)在这里插入图片描述

修改login.jsp中的代码,制作登陆页面,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 登录界面 -->
	<h1>欢迎使用登录管理系统!</h1>
	
	<!-- action 提交请求的地址 method 处理请求的方式 -->
	<form action="deal.jsp" method="post">
		
		<table>
			<tr>
				<td>请输入你的账号</td>
				<td>
				<input type="text" name="userName"/>
				</td>
			</tr>
			<tr>
				<td>请输入你的密码</td>
				<td>
				<input type="password" name="userPwd"/>
				</td>
			</tr>
			<tr>
				<td></td>
				<td>
				<input type="submit"/>
				</td>
			</tr>
		</table>
	
	</form>
	
</body>
</html>
运行一下,结果如下:

在这里插入图片描述

很简单的一个登录界面,接下来我们继续,修改处理文件deal.jsp的代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	request.setCharacterEncoding("UTF-8");
	//获取用户输入的账号和密码
	String username = request.getParameter("userName");
	String password = request.getParameter("userPwd");
	String DBDriver = "com.mysql.jdbc.Driver";
	String DBUrl = "jdbc:mysql://localhost:3306/usertest";		//最后是数据库的名字
	String DBUser = "root";
	String DBPass = "";			//数据库密码
	
	//根据获得的用户名到数据库查找用户
	
	Connection c = null;
	
	try{
		Class.forName("com.mysql.jdbc.Driver");
		c = DriverManager.getConnection(DBUrl, DBUser, DBPass);
		out.print(username);
		String sql = "select * from zhang where number = '" + username + "'";
		PreparedStatement st = c.prepareStatement(sql);
		ResultSet rs = st.executeQuery();
		
		//判断用户是否存在
		if(rs.next()){
			//获取密码
			String pwd = rs.getString("mobilephone");
			//判断密码是否相同
			if(!pwd.equals(password)){
				response.sendRedirect("error.jsp");//密码错误跳转error界面
			}
			response.sendRedirect("main.jsp");
		}else{
			response.sendRedirect("error.jsp");
		}
		
		
		
	}catch(Exception e){
		e.printStackTrace();
	}



%>
</body>
</html>
接着我们修改error.jsp内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>Error!</h4>
	<br>
	<h4>学号不存在!对不起,你不是我们的人员!即将跳转登陆页面!</h4>
			//5秒后跳转到登录页面
			<% response.setHeader("refresh","5;url=login.jsp"); %>
			
</body>
</html>
接下来就剩登陆成功的界面,修改登陆成功的main.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
 <body style="background-color:lightblue">
        <%
            out.println("Welcome!" );
        %>
    </body>
</html>
到此我们已经完成,看一下效果:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里只做一个小小的示范,大家可以自己修改一下界面让界面更美观,也可以添加其他的功能,比如利用转发来处理账号错误和密码错误的情况并进行反馈到用户。新手上路,请多多关照!
谢谢大家的支持,感谢观看!
发布了6 篇原创文章 · 获赞 10 · 访问量 3257

猜你喜欢

转载自blog.csdn.net/qq_31747473/article/details/104421073