Java中修改密码时输入旧密码要与数据库中的密码一致

1.首先在jsp文件中搭建好界面


2.引入jquery中的文件,并且在jsp文件中写入jquery的路径和文本框的设置

<script src="./js/jquery-1.7.min.js"></script> 


<!-- 旧密码 -->
			<div class="oldpwd">
				<span>旧密码</span><input type="password" name="oldpwd" id="oldpwd"
					placeholder="请填写当前密码"> <span
					style="color: #F00; margin-top: 5px;">* </span> <span id="oldpwd2"></span>
			</div>

3.在jsp文件中写入ajax的代码

<script>
//使用ajax来判断旧密码与数据库中的密码是否一致
$(function(){
	//先写一个鼠标移开的事件
	$('#oldpwd').blur(function(){
		var oldpwd = $('#oldpwd').val();//获取文本框的值
		//部分路径
		var path = '<%=request.getContextPath()%>';
			$.ajax({
				type : "post",//post的提交方式
				url : path + "/employee",//完整的路径
				async : false,
				data : {//获取旧的密码和跳转到servlet文件的方法名
					"oldpwd" : oldpwd,
					"action" : "pwd"
				},
				success : function(data) {//成功的话判断密码是否为数据库中的密码
					if (data == "true") {//如果为true则输入正确
						$('#oldpwd2').text('输入正确');
					} else {//判断是否为空
						if (oldpwd == "" || oldpwd == null) {
							$('#oldpwd2').text('旧密码不能为空');
						} else {
							$('#oldpwd2').text('密码输入不正确');
						}
					}
				},
				error : function() {
					alert("失败");
				}
			});
		})
	})
</script>

4.在servlet文件中写入判断输入的旧密码是否为数据库中的密码

else if (action != null && action.equals("pwd")) {
			/**
			 * 判断密码该密码与数据库的密码是否一致
			 */
			//定义一个out可以向前台传值
			PrintWriter out = response.getWriter();
			EmployeeDao employeeDao = new EmployeeDao();
			//使用session,获取当前登录人的id
			HttpSession session = request.getSession();
			Employee e = (Employee) session.getAttribute("employee");
			int id = e.getUserid();
			try {
				//调用Dao文件中的方法
				String mima = employeeDao.pwd(id);
				//获取到前台旧密码的值
				String oldpwd = request.getParameter("oldpwd");
				//判断前台填写的值是否与数据库中的值一致
				if (mima.equals(oldpwd)) {
					//如果一致则向前台传过去true
					out.print(true);
				} else {
					//否则传false
					out.print(false);
				}
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			out.flush();
			out.close();
		}

5.在Dao文件中写通过获取登录人的id来数据库中查询密码是什么

public String pwd(int id) throws SQLException {
		//通过传过来的参数,来查询密码是多少
		String sql = "select USER_PWD from task_user where ID=?";
		Connection conn = null;
		PreparedStatement stmt = null;
		conn = getConn();
		stmt = conn.prepareStatement(sql);
		stmt.setInt(1, id);
		ResultSet rs = stmt.executeQuery();
		//定义一个空的字符串
		String pwdd = "";
		//从结果集中获取值放到pwdd中
		if (rs.next()) {
			pwdd = rs.getString(1);
		}
		//返回数据库中查到的密码
		return pwdd;
	}

6.最后的成品,数据库中的密码是123456




  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
根据提供的引用内容,可以得知该系统使用了MySQL数据库。管理员修改密码数据库设计如下: 1.管理员表(admin):存储管理员的信息,包括管理员ID、管理员姓名、管理员密码等字段。 2.修改密码操作:管理员在前端页面输入密码和新密码,系统后台进行密码验证和更新操作。 3.密码验证:系统后台根据管理员ID查询管理员表,获取该管理员的密码,与前端输入密码进行比对,如果一致则允许修改密码,否则提示密码错误。 4.密码更新:系统后台将管理员表该管理员的密码字段更新为前端输入的新密码。 以下是一个简单的Java代码示例,用于实现管理员修改密码数据库设计: ```java // 导入JDBC相关的包 import java.sql.*; public class AdminPasswordUpdate { // JDBC驱动名及数据库URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/book_management_system"; // 数据库用户名和密码 static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // 注册JDBC驱动 Class.forName(JDBC_DRIVER); // 打开连接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // 执行查询 System.out.println("创建Statement对象..."); stmt = conn.createStatement(); String sql; sql = "SELECT password FROM admin WHERE admin_id = '001'"; ResultSet rs = stmt.executeQuery(sql); // 处理结果集 String oldPassword = ""; while (rs.next()) { oldPassword = rs.getString("password"); } rs.close(); // 验证密码 if (oldPassword.equals("admin123")) { // 更新密码 sql = "UPDATE admin SET password = 'newpassword' WHERE admin_id = '001'"; stmt.executeUpdate(sql); System.out.println("密码更新成功!"); } else { System.out.println("密码错误,更新失败!"); } // 关闭连接 stmt.close(); conn.close(); } catch (SQLException se) { // 处理JDBC错误 se.printStackTrace(); } catch (Exception e) { // 处理Class.forName错误 e.printStackTrace(); } finally { // 关闭资源 try { if (stmt != null) stmt.close(); } catch (SQLException se2) { } try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } } ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值