Struts1.x+JDBC项目——简单的登录界面

一、实验目的

通过Struts1.x架构创建登录界面,并利用JDBC连接MySQL数据库。
在Web界面输入用户名和密码时,若数据库中存有该用户名和密码,则登陆成功,否则登陆失败。

二、使用软件

MyEclipse2017、MySQL8、Navicat12

三、具体流程

1、下载JDBC驱动,并将其复制到你所建的Web Project项目的WebRoot——WEB-INF——lib文件夹下

在这里插入图片描述

2、创建Struts1.x项目的登录界面(详见我的另一篇博客 Struts1.x项目——简单的登录界面)

编写login.jsp,struts-config.xml,web.xml,Action和ActionForm文件

3、利用Navicat在数据库中创建表格

此处我创建了一个数据库,名为login_database,同时创建了一个名为users的表格,表中有两列数据,分别为name和pswd
在这里插入图片描述

在这里插入图片描述

注:可以自己命名或者添加参数(在java代码中修改即可)

4、编写java文件连接数据库——database.java

package mysql;

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

public class database {
	//数据库的URL路径
	static final String URL = "jdbc:mysql://localhost:3306/login_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
	// 数据库的用户名与密码
	static final String USER = "root";
	static final String PASSWORD = "root";
	
	//构造函数
	public database() {
	}

	//判断函数,判断用户在网页输入的用户名和密码与在数据库中存储的是否一致
	public boolean verify(String login_username, String login_password) {
		try {
		
			// 加载数据库驱动程序
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 获得数据库连接
			Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
			// 通过数据库的连接操作数据库,实现增删改查
			Statement stmt = conn.createStatement();
			//查找和数据库存储数据一致的用户名
			String sql = "SELECT pswd FROM users WHERE name=\"" + login_username+"\"";
			ResultSet rs = stmt.executeQuery(sql);
			
			//判断输入的密码是否和数据库中存储的密码是一致的
			while (rs.next()) {
				if(rs.getString("pswd").equals(login_password))
					return true;
			}

			// 完成后关闭创建的实例
			rs.close();
			stmt.close();
			conn.close();
		} catch (SQLException se) {
			// 处理 JDBC 错误
			se.printStackTrace();
		} catch (Exception e) {
			// 处理驱动程序错误
			e.printStackTrace();
		} 
		return false;
	}

}

注:编写java文件时需要创建一个package,java文件存在该package中
在这里插入图片描述

5、在Action文件中创建数据库实例

在这里插入图片描述
Action文件完整代码如下:

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package lh_login.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lh_login.struts.form.MyloginForm;
import mysql.database;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class MyloginAction extends Action {

	/** 此操作主要是进行用户的请求处理,类似于doGet()或者是doPost()方法功能
	 * @param mapping 此类主要负责读取struts-config.xml文件配置
	 * @param form 表示要操作的ActionForm,使用它的目的是为了能够接收参数
	 * @param request  用户的请求
	 * @param response  用户回应
	 * @return ActionForward  表示返回的路径信息,通过配置文件取出映射的key
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) {
		//这个form就是接受到的表单信息,你可以直接进行强制转换
		MyloginForm myloginForm = (MyloginForm) form;
		
		//创建数据库实例
		database db=new database();
		
		//调用函数,参数为从网页接收到的用户名和密码
		if(db.verify(myloginForm.getUsername(), myloginForm.getPassword())){
			request.setAttribute("msg", "用户登录成功,欢迎!");
			return mapping.findForward("success");
		}
		else{
			request.setAttribute("msg", "用户登录失败,请重新登录!");
			return mapping.findForward("failure");
		}
	}
}

6、启动Tomcat,运行项目

7、打开浏览器,输入相关网址

在这里插入图片描述

8、验证结果

未输入用户名和密码:
在这里插入图片描述

输入数据库中没有的用户名和密码:
在这里插入图片描述
输入数据库中存在的用户名和密码:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值