JavaWeb 实现密码修改的案例
目录
一、基础环境搭建
二、编写Dao数据库操作层
三、编写服务层
四、编写视图控制器
五、jsp视图
一、基础环境搭建
见我的这篇博客:https://blog.csdn.net/qq_50909707/article/details/122609876
二、编写Dao数据库操作层
package com.wxl.dao.user;import com.wxl.model.User;import java.sql.Connection;
import java.sql.SQLException;public interface UserDao {//修改当前用户密码public int updatePwd(Connection connection, int id, String password) throws SQLException;
}
实现类
package com.wxl.dao.user;import com.wxl.dao.BaseDao;
import com.wxl.model.User;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class UserDaoImpl implements UserDao {//修改当前用户密码@Overridepublic int updatePwd(Connection connection, int id, String password) throws SQLException {PreparedStatement pstm=null;int execute=0;if(connection!=null){String sql="update smbms_user set userPassword=? where id=?";Object params[]={password,id};execute=BaseDao.execute(connection,sql,params,pstm);BaseDao.closeResource(null,pstm,null);}return execute;}
}
三、编写服务层
package com.wxl.service.user;import com.wxl.model.User;public interface UserService {//根据用户ID修改密码public boolean updatePwd(int id,String password);
}
实现类
package com.wxl.service.user;import com.wxl.dao.BaseDao;
import com.wxl.dao.user.UserDao;
import com.wxl.dao.user.UserDaoImpl;
import com.wxl.model.User;import java.sql.Connection;
import java.sql.SQLException;public class UserServiceImpl implements UserService {@Overridepublic boolean updatePwd(int id, String pwd) {Connection connection = null;boolean flag = false;//修改密码try {connection = BaseDao.getConnection();if (userDao.updatePwd(connection, id, pwd) > 0) {flag = true;}} catch (SQLException e) {e.printStackTrace();} finally {BaseDao.closeResource(connection, null, null);}return flag;}
}
四、编写视图控制器
package com.wxl.controller.user;import com.mysql.cj.util.StringUtils;
import com.sun.deploy.nativesandbox.NativeSandboxOutputStream;
import com.wxl.model.User;
import com.wxl.service.user.UserService;
import com.wxl.service.user.UserServiceImpl;
import com.wxl.util.Constants;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String method=req.getParameter("method");if(method.equals("updatePwd")){updatePwd(req,resp);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}private void updatePwd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//从Session里面拿IDObject o = req.getSession().getAttribute(Constants.USER_SESSION);String newpassword = req.getParameter("newpassword");String oldpassword = req.getParameter("oldpassword");boolean flag = false;if (!((User) o).getUserPassword().equals(oldpassword)) {req.setAttribute("message", "原始密码错误");req.getRequestDispatcher("/jsp/pwdmodify.jsp").forward(req, resp);} else {if ((o != null) && (!StringUtils.isNullOrEmpty(newpassword))) {UserService userService = new UserServiceImpl();flag = userService.updatePwd(((User) o).getId(), newpassword);if (flag) {req.setAttribute("message", "修改密码成功,请退出,使用新密码登录");//密码修改成功,移除当前Session//退出登录req.getSession().removeAttribute(Constants.USER_SESSION);resp.sendRedirect("/login.jsp");//返回登录页面} else {req.setAttribute("message", "密码修改失败");req.getRequestDispatcher("/jsp/pwdmodify.jsp").forward(req, resp);}} else {req.setAttribute("message", "修改出错");req.getRequestDispatcher("/jsp/pwdmodify.jsp").forward(req, resp);}}}
}
五、jsp视图
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/jsp/common/head.jsp"%>
<div class="right"><div class="location"><strong>你现在所在的位置是:</strong><span>密码修改页面</span></div><div class="providerAdd"><form id="userForm" name="userForm" method="post" action="${pageContext.request.contextPath }/user/user.do"><input type="hidden" name="method" value="updatePwd"><!--div的class 为error是验证错误,ok是验证成功--><div class="info">${message}</div><div class=""><label for="oldPassword">旧密码:</label><input required type="password" name="oldpassword" id="oldpassword" value=""><font color="red"></font></div><div><label for="newPassword">新密码:</label><input required type="password" name="newpassword" id="newpassword" value=""><font color="red"></font></div><div><label for="rnewpassword">确认新密码:</label><input required type="password" name="rnewpassword" id="rnewpassword" value=""><font color="red"></font></div><div class="providerAddBtn"><!--<a href="#">保存</a>--><button hidden id="button">button</button></div></form><input type="submit" onclick="handle()" name="save" id="save" value="保存" class="input-button"></div></div></section>
<%@include file="/jsp/common/foot.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/pwdmodify.js"></script>
JavaWeb 实现密码修改的案例相关推荐
- Web 攻防之业务安全:密码找回安全案例总结.
Web 攻防之业务安全:密码找回安全案例总结 业务安全是指保护业务系统免受安全威胁的措施或手段.广义的业务安全应包括业务运行的软硬件平台(操作系统.数据库,中间件等).业务系统自身(软件或设备).业务 ...
- C#后台实现密码修改功能
不论是Web网页程序还是Window窗体应用程序,运行启动项目程序时一般需要我们输入登录账号用户名和对应的账号密码.这就使设计编译程序过程中用户表成为不可或缺的一部分,用此表来存放账号,密码以及登录用 ...
- mysql数据库验证登陆不上_MySQL数据库连接不上、密码修改问题
1.问题描述 版本:[CentOS8][MySQL5.7] 问题:远程使用navicat连接不上数据库,后来试了在linux中都登不进去.根据提示应该是密码不对,此文主要介绍密码修改 和一些注意事项. ...
- oracle解锁system密码,Oracle System密码忘记 密码修改、删除账号锁定lock
运行cmd命令行 录入 sqlplus /nolog 无用户名登录 conn /as sysdba 连接到数据本地数据 alter user system identified by password ...
- 连接池--在密码修改的影响
群里有朋友问起连接池在密码修改后的变化,特地做了下测试 使用连接池,连接字符串为: string connString = "Data Source=.;Initial Catalog=De ...
- Ubuntu中用户名密码和root密码修改
用户名密码和root密码不是同一个密码 重置(修改)root密码 ubuntu的root初始密码是随机的,每次开机都有一个新的root密码修改方法如下: 1.sudo passwd root 2.此处 ...
- linux密码修改实验
1.在单用户模式下进行引导 在不同的运行级别中,一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录.单用户模式对少数管 ...
- mysql密码修改脚本
网上搜索: mysql密码修改工具 @title 护卫神MySQL密码修改工具 @echo off @color 0a @ECHO ┏━━━━━━━━━━┥ 护卫神www.huweishen.c ...
- mysql关于访问权限以及root密码修改
root密码修改: mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = ...
最新文章
- nsTimer的简单用法
- 简单工厂模式(详细)(举例饮料)
- 我们希望读者能从这个BLOG获得什么?
- python输入学号返回成绩_Python模拟登陆正方教务系统并抓取成绩单
- docker 搭建Tomcat web 简单示例过程
- C++ 基础概念、语法和易错点整理
- python大杀器之requests安装
- 用撸Arduino的方法撸STM32F103xx
- 考研英语核心词汇辨析(黑魔方系列2007版之十二)
- 还来一篇说下json_value 以及 json_query 的应用 (3)
- openssl加解密原理
- dbv oracle驱动,oracle dbv使用详解
- ZigBee-CC2530单片机 - 实现外部电压值的测量
- @Transient注解
- HTML5分级标题,HTML5与CSS3基础教程:创建分级标题_html/css_WEB-ITnose
- 【DZS-12CE/S DC220V型直流回路监视继电器】
- 《自控力》 第三章读书笔记
- 交换字符使得字符串相同
- Win11系统时间不同步的解决方法
- MySQL数据库 引擎