首页 > 其他分享 >24-修改密码功能

24-修改密码功能

时间:2022-09-08 09:12:20浏览次数:80  
标签:24 java 修改 kuang resultSet 密码 user import com

24-修改密码功能

概述

本文接着写smbms的修改密码的功能
功能不算难,核心就是数据库的update语句

实践

UserDao.java

package com.kuang.dao.user;

import com.kuang.pojo.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * 功能描述
 *
 * @since 2022-09-05
 */
public interface UserDao {
    public User getLoginUser(Connection conn, PreparedStatement preparedStatement, ResultSet resultSet, String sql,
        Object[] params);

    // 修改当前用户密码
    public int updataUserPwd(Connection conn, PreparedStatement preparedStatement, int id, String pwd);
}

UserDaoImpl.java


package com.kuang.dao.user;

import com.kuang.dao.BaseDao;
import com.kuang.pojo.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 功能描述
 *
 * @since 2022-09-05
 */
public class UserDaoImpl implements UserDao {
    @Override
    public User getLoginUser(Connection conn, PreparedStatement preparedStatement, ResultSet resultSet, String sql,
        Object[] params) {
        User user = new User();
        try {
            resultSet = BaseDao.execute(conn, sql, params, preparedStatement, resultSet);
            if (resultSet.next()) {
                user.setAddress(resultSet.getString("address"));
                user.setBirthday(resultSet.getDate("birthday"));
                user.setUserCode(resultSet.getString("userCode"));
                user.setUserName(resultSet.getString("userName"));
                user.setUserPassword(resultSet.getString("userPassword"));
                user.setUserRole(resultSet.getString("userRole"));
                user.setCreatedBy(resultSet.getInt("createdBy"));
                user.setCreationDate(resultSet.getDate("creationDate"));
                user.setModifyBy(resultSet.getInt("modifyBy"));
                user.setModifyDate(resultSet.getDate("modifyDate"));
                user.setGender(resultSet.getInt("gender"));
                user.setId(resultSet.getInt("id"));
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return user;
    }

    @Override
    public int updataUserPwd(Connection conn, PreparedStatement preparedStatement, int id, String pwd) {
        String sql = "update smbms_user set userPassword=? where id=?";
        Object[] params = {pwd, id};
        int result = 0;
        try {
            result = BaseDao.execute(conn, sql, params, preparedStatement);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return result;
    }
}

UserService.java


package com.kuang.service;

import com.kuang.pojo.User;

/**
 * 功能描述
 *
 * @since 2022-09-05
 */
public interface UserService {
    public User getLoginUser(String UserCode);

    // 更新用户名密码
    public boolean updateUserPwd(int id, String pwd);
}

UserServiceImpl.java


package com.kuang.service;

import com.kuang.dao.BaseDao;
import com.kuang.dao.user.UserDao;
import com.kuang.dao.user.UserDaoImpl;
import com.kuang.pojo.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * 功能描述
 *
 * @since 2022-09-05
 */
public class UserServiceImpl implements UserService {
    private Connection connection = BaseDao.getConnection();

    private UserDao userDao;

    public UserServiceImpl() {
        userDao = new UserDaoImpl();
    }

    @Override
    public User getLoginUser(String UserCode) {
        String sql = "select * from smbms_user where userCode=?";
        Object[] params = {UserCode};
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        User loginUser = userDao.getLoginUser(connection, preparedStatement, resultSet, sql, params);
        BaseDao.closeResource(null, preparedStatement, resultSet);
        return loginUser;
    }

    @Override
    public boolean updateUserPwd(int id, String pwd) {
        PreparedStatement preparedStatement = null;
        int i = userDao.updataUserPwd(connection, preparedStatement, id, pwd);
        Boolean flag = false;
        if (i > 0) {
            flag = true;
        }
        BaseDao.closeResource(null, preparedStatement, null);
        return flag;
    }
}

UserServlet.java

package com.kuang.servlet;

import com.kuang.pojo.User;
import com.kuang.service.UserService;
import com.kuang.service.UserServiceImpl;
import com.kuang.utils.Constants;
import com.mysql.jdbc.StringUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 功能描述
 *
 * @since 2022-09-07
 */
public class UserServlet extends HttpServlet {
    private static final long serialVersionUID = 4477827924112311146L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        updatePwd(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

    public void updatePwd(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        Object o = req.getSession().getAttribute(Constants.USER_SESSION);
        String newPwd = req.getParameter("newpassword");
        if (o != null && !StringUtils.isNullOrEmpty(newPwd)) {
            User user = (User) o;
            UserService userService = new UserServiceImpl();
            boolean flag = userService.updateUserPwd(user.getId(), newPwd);
            if (flag) {
                req.setAttribute(Constants.MESSAGE, "修改成功,请重新登录");
                // 需移除当前Session
                req.getSession().removeAttribute(Constants.USER_SESSION);

            } else {
                req.setAttribute(Constants.MESSAGE, "修改失败");

            }
        } else {
            req.setAttribute(Constants.MESSAGE, "新密码有问题");

        }
        req.getRequestDispatcher("/jsp/pwdmodify.jsp").forward(req, resp);
    }
}

web.xml

<servlet>
    <servlet-name>user</servlet-name>
    <servlet-class>com.kuang.servlet.UserServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>user</servlet-name>
    <url-pattern>/jsp/user.do</url-pattern>
</servlet-mapping>

遗留

UserServlet.java这个文件中最后使用转发的方式转发到当前的密码修改页面,将返回的修改成功或失败的消息以cookie的方式塞回给req,前端页面接收这个而消息并显示,没有找到是在哪里实现的。

标签:24,java,修改,kuang,resultSet,密码,user,import,com
From: https://www.cnblogs.com/Oh-mydream/p/16668272.html

相关文章

  • 思科路由器特权密码的设置
    enablepassword这种方式是明文的。enablesecret是采用了MD5加密的。servicepassword-encryption这个加密的方式是采用了cisco的私有加密方式来加密的。所以我在设置了vt......
  • QT中修改窗口的标题和图标
    修改窗口标题QT的窗口默认名字是MainWindow,在这里介绍两种方法修改窗口的Title1.直接通过UI设计器修改:我修改成了"我的窗口"运行后,显示如下:好了,我们需要去找下,"......
  • 【已解决】wordpress 修改固定链接 伪静态URL出现nginx 404错误
    一、站点设置 打开站点设置,选择伪静态,选择wordpress   二、wordpress设置打开wordpress后台,选择设置---》固定链接 选择一个你喜欢的格式点击保存 之......
  • 课程学习24-类、字段、方法
    类是组成java程序的基本要素,是一类对象的原型。封装了一类对象的状态和方法,即把变量与函数封装到一个类中。 一、构造方法constuctor特殊的方法、初始化new该类的......
  • 记录修改el-table滚动条ui
    .el-table__body-wrapper::-webkit-scrollbar{display:block;width:16px;/*滚动条宽度*/height:16px;/*滚动条高度*/}/*定义滚......
  • Docker 容器部署jenkins后忘记系统用户密码处理方案
    一、问题描述由于本地尝试使用docker部署jenkins来研究梳理工具的使用步骤,但隔了一段时间之后,重新拉起容器应用镜像,发现忘记了用户密码,无法登录系统。二、解决方案第......
  • 第 24 题:聊聊 Redux 和 Vuex 的设计思想
    共同点首先两者都是处理全局状态的工具库,大致实现思想都是:全局state保存状态---->dispatch(action)------>reducer(vuex里的mutation)---->生成newState;整个状态为同步......
  • vue如何回显已上传的文件并且修改
    我们知道当我们在表单里面上传多个文件时,我们希望将多个文件和表单中的对象一起传给后端,这时我们传给后端的文件就是file数组。而我们想要回显已上传的文件,应该是拿不到那......
  • vue 正则 密码校验
    password:[/*{validator:checkPassword,trigger:'blur'}*/{pattern:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&,.*]).{8,19......
  • HTML页面修改辅助测试页面列表滑轮显示
    需求页面 如上图,我们在实际测试过程中,需要测试这个列表页在数据过多时,是否会有滑轮出现,依照我们常规操作,会需要我们操作业务流程,单条的走【申请】-【审批】等流程,会繁琐......