P数据库操作:简单易学的修改密码方法 (jsp 修改密码 数据库)

在Web开发中,用户登录是非常基础的功能。然而随之而来的,必须要有一套完整的账户管理功能来满足用户需求,其中最基础的操作之一就是修改密码。在本篇文章中,我们会介绍一种简单易学的修改密码方法,结合P以及数据库操作实现密码修改功能。

一、需求分析

在实现密码修改的功能之前,我们需要对需求进行分析,以确保我们开发的功能符合实际需求。对于密码修改功能,我们需要考虑以下几个方面:

1. 安全性:必须要保证密码修改操作是安全可靠的,确保用户的信息不被泄漏。

2. 用户体验:必须要提供简易的操作流程,方便用户快速的修改密码。

3. 数据库操作:必须要将修改后的密码保存到数据库中,以便后续登录验证。

二、实现方式

在分析需求之后,我们可以开始着手实现修改密码功能。以下是修改密码的简易流程:

1. 用户需要在登录状态下进入密码修改页面。

2. 在密码修改页面上,用户需要输入当前密码、新密码以及确认新密码。

3. 当用户填写完毕后,需要点击修改密码按钮。

4. 系统会先对用户输入的信息进行合法性校验,如果用户输入的信息无误,则将用户的新密码存入数据库,并提示用户修改密码成功。

现在,我们可以开始对如何实现以上流程进行讲解。其中,需要用到P页面以及MySQL数据库操作技术。

1. 创建修改密码页面

我们需要创建一个P页面来实现修改密码的功能。在该页面中,我们需要包括以下元素:

– 输入当前密码的文本框

– 输入新密码的文本框

– 输入确认新密码的文本框

– 提交按钮

– 处理密码修改的后台程序(包括表单验证以及数据库操作等)

以下是修改密码页面的代码:

“`

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding=”UTF-8″%>

修改密码

修改密码

当前密码:

新密码:

确认新密码:

“`

2. 编写后台P代码

接下来,我们需要实现管理密码修改操作的后台程序。在该程序中,我们需要完成以下操作:

– 获取用户输入的当前密码、新密码以及确认新密码。

– 对输入的密码进行验证(密码长度、格式等)。

– 对数据库使用SQL语句,将新密码更新至数据库。

– 返回前端页面信息(修改成功或者失败信息)。

以下是修改密码后台程序的代码:

“`

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding=”UTF-8″%>

<%

request.setCharacterEncoding(“UTF-8”);

String oldPwd = request.getParameter(“oldPwd”); //获取用户输入的当前密码

String newPwd = request.getParameter(“newPwd”); //获取用户输入的新密码

String confirmPwd = request.getParameter(“confirmPwd”); //获取用户输入的确认新密码

String sessionID = session.getId(); //获取sessionID

String username = “”; //获取当前登录用户的用户名

//查询当前登录用户的用户名

try{

Class.forName(“com.mysql.jdbc.Driver”);

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/userDB?useSSL=false&serverTimezone=GMT%2B8”, “root”, “xx”);

String sql = “select username from user_session where sessionID=?”;

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1,sessionID);

ResultSet rs = pstmt.executeQuery();

while(rs.next()){

username = rs.getString(“username”);

}

pstmt.close();

rs.close();

conn.close();

}catch(Exception e){

e.printStackTrace();

}

//验证密码是否符合要求

if(newPwd.length() 20){

out.println(“alert(‘密码长度应为6~20位!’);location.href=’javascript:history.back(-1);'”);

}else if(!newPwd.matches(“^[a-zA-Z0-9_@.-]+$”)){

out.println(“alert(‘密码格式不正确!’);location.href=’javascript:history.back(-1);'”);

}else if(!newPwd.equals(confirmPwd)){

out.println(“alert(‘两次密码输入不一致!’);location.href=’javascript:history.back(-1);'”);

}

//更新密码到数据库

try{

Class.forName(“com.mysql.jdbc.Driver”);

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/userDB?useSSL=false&serverTimezone=GMT%2B8”, “root”, “xx”);

String sql = “update user set password=? where username=?”;

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1,newPwd);

pstmt.setString(2,username);

int num = pstmt.executeUpdate();

pstmt.close();

conn.close();

//密码修改成功

if(num>0){

out.println(“alert(‘密码修改成功!’);location.href=’changePwd.jsp’;”);

}

}catch(Exception e){

e.printStackTrace();

}

%>

“`

在以上代码中,我们首先获取用户输入的当前密码、新密码以及确认新密码等信息,并对其进行格式验证。之后,我们从数据库中查询出当前用户的用户名,并使用SQL语句将修改后的密码更新至数据库。我们返回执行结果给前端页面。

三、

以上就是使用P及数据库操作实现修改密码的简单易学方法。当然,在实际开发当中,我们需要更多的安全验证以及更加完善的逻辑操作,以便保证应用程序的健壮性。希望本篇文章对您有所帮助。

相关问题拓展阅读:

servlet+jsp修改登陆密码

jsp页面端

/UserDetailServlet?ofplag=updatePassword” method=post>

修改口令

登陆帐号

姓名

原密码

新密码

确认新密码

伍姿

servlet端:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding(“GBK”);

update(request, response);

}

public void update(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

boolean flag = false;

String msg = “修改密码成功!!”;

String pwd = request.getParameter(“pwd”);//获取前端提慎档交的旧密码

String password = request.getParameter(“password”);//获取提交的新密码

System.out.println(pwd);

System.out.println(password);

//从当前的session中获得当前登录的用户信息

UserInfo userinInfo = (UserInfo)request.getSession().getAttribute(“userinfo”);

UserManager userManager = new UserManager();

System.out.println(userinInfo.getPwd());

//对比用户输入的旧密码是否和数据库中密码一致,如果一致才才修改密码

if (userinInfo.getPwd().equals(pwd)) {

System.out.println(“=======================================”);

//调用业务层去修改密码,并返回是否修改成功的标志。

flag = userManager.updatePassword(userinInfo, password);

if (flag) { //如果flag=true则说明修改密码成功

request.setAttribute(“msg”, msg);

} else {

msg = “修改密码出错,请重新提交!!”;

request.setAttribute(“msg”, msg);

}

} else { //不一致则返回信息告诉用户原密码错误。

msg = “原密码错误,请确认再修改!!”;

request.setAttribute(“msg”, msg);

}

//跳转到指定页面,并显示以上设置的提示。

request.getRequestDispatcher(“/jspPages/homewpage.jsp”).forward(request, response);

}

UserManager类中修改密码的方法

/*

* 修改密码

*/

public Boolean updatePassword(UserInfo userInfo, String password){

String sql = “update userinfo set pwd = ? where userid = ?” ; //设置修改密码sql

System.out.println(sql);

Object args = {password,userInfo.getUserID()}; //sql中问号的参数

//调用数据访问层dao,执行数据库操作。

PersistentStorage persistentStorage = new PersistentStorage();

return (1 == persistentStorage.update(sql, args));

}

PersistentStorage 类中的update方法

public int update(String sql,Object args)

{

int row=0;

/*

* 根据sql语句进行插入数据库操作。

*

* */

dbManager.getCon();

try {

dbManager.pst = dbManager.conn.prepareStatement(sql);

for (int i = 0; i

dbManager.pst.setObject(i + 1, args);

}

row = dbManager.pst.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

} finally {

dbManager.closeCon();

}

return row;

}

PersistentStorage 类中用到的dbManager类

package com.upc.soft.domain.persistent;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DbConManager {

public static ResultSet rs = null;

public static Connection conn = null;

public static PreparedStatement pst = null;

public void getCon() {

try {

//加载内存,到DriverManager注册

Class.forName(IConfig.DRIVER);

System.out.println(“加载驱动程序成功”);

//建立公路

conn = DriverManager.getConnection(IConfig.URL+IConfig.DBNAME, IConfig.UNAME, IConfig.PWD);

System.out.println(“得到连接成功”);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

public void closeCon() {

try {

if(rs!=null) {

rs.close();

rs = null;

System.out.println(“rs数据流关闭成功”);

}

if(pst!=null) {

pst.close();

pst = null;

System.out.println(“pst数据流关闭成功”);

}

if(conn!=null) {

conn.close();

conn = null;

System.out.println(“conn数据流关闭成功”);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

关于jsp 修改密码 数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » P数据库操作:简单易学的修改密码方法 (jsp 修改密码 数据库)