jsp mysql修改密码_Servlet+JSP+MySQL实现用户管理模块之七、实现用户信息更新和重置密码...
實現用戶信息更新和重置密碼功能
如果用戶信息很多的時候,感覺這項實現起來比較麻煩的。因為要考慮用戶哪些信息需要更新哪些不需要更新,就必須先更原來的信息比對。呵呵,當然如果考慮到多個數據庫表間的操作的話,這些根本不值一提。
首先介紹用戶信息更新功能:
用戶信息更新JSP頁面,userupdate.jsp
pageEncoding="UTF-8"%>
html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
用戶信息更新界面| 信息修改 | |
| 用戶ID | ${st.userId?} |
| 用戶名 | |
| 用戶賬號 | |
οnclick="window.location.href='/UserManage/RecoverPWDServlet'"> |
用戶信息更新Servlet,
package?servlet;
import?java.io.IOException;
import?java.util.ArrayList;
import?javax.servlet.ServletException;
import?javax.servlet.annotation.WebServlet;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
import?dao.UserDao;
import?entity.User;
/**
*?用戶信息更新Servlet
*/
@WebServlet("/UserUpdateServlet")
public?class?UserUpdateServlet?extends?HttpServlet?{
private?static?final?long?serialVersionUID?=?1L;
@Override
protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
resp.setContentType("text/html;charset=UTF-8");
int?userId?=?Integer.parseInt(req.getParameter("userId"));
//向session中保存userId
req.getSession().setAttribute("userId",?userId);
UserDao?ud?=?new?UserDao();
User?userInfo?=?ud.selectOneUserInfo(userId);
ArrayList?list?=?new?ArrayList();
list.add(userInfo);
req.setAttribute("list",?list);
String?msg?=?"用戶信息已更新!";
req.setAttribute(msg,?msg);
String?path?=?resp.encodeURL("userupdate.jsp");
req.getRequestDispatcher(path).forward(req,?resp);
}
@Override
protected?void?doPost(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
resp.setContentType("text/html;charset=UTF-8");
//從session中獲取userId
HttpSession?session?=?req.getSession();
int?userId?=?(int)?session.getAttribute("userId");
//獲取用戶表單數據
String?userName?=?req.getParameter("userName");
String?userAccount?=?req.getParameter("userAccount");
//實例化用戶對象
User?user?=?new?User();
user.setUserId(userId);
user.setUserName(userName);
user.setUserAccount(userAccount);
//更新用戶信息
UserDao?ud?=?new?UserDao();
ud.updateUser(user);
//跳轉到用戶管理界面
ArrayList?list?=?ud.selectNotDeleteList();
req.setAttribute("list",?list);
String?path?=?resp.encodeURL("userlist.jsp");
req.getRequestDispatcher(path).forward(req,?resp);
}
}
數據庫操作--用戶信息更新方法
/**
*?用戶信息更新
*?@param?user?User對象
*/
public?void?updateUser(User?user)?{
Connection?conn?=?null;
PreparedStatement?ps?=?null;
//將用戶數據寫入數據庫
try?{
conn?=?DBUtils.getConnection();//獲取連接對象Connection
String?sql?=?"UPDATE?users?SET?user_name=?,user_account=?"
+?"?WHERE?user_id=?";
ps?=?conn.prepareStatement(sql);//格式化sql語句
//為?賦值
ps.setString(1,?user.getUserName());
ps.setString(2,?user.getUserAccount());
ps.setInt(3,?user.getUserId());
ps.executeUpdate();
}?catch?(SQLException?e)?{
e.printStackTrace();
}?catch?(Exception?e)?{
e.printStackTrace();
}?finally?{
//釋放資源
DBUtils.closeAll(null,?ps,?conn);
}
}
其次介紹用戶密碼重置功能:
用戶密碼重置JSP頁面,recoverpwd.jsp
pageEncoding="UTF-8"%>
html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
重置用戶密碼界面function?check1()?{
if?(document.form1.userAccount.value==""){
alert("請輸入用戶賬號!");
return?false;
}
if?(document.form1.userPassword.value==""){
alert("請輸入用戶密碼");
return?false;
}
if?(document.form1.userPassword1.value==""){
alert("請輸入確認密碼!");
return?false;
}
if?(document.form1.userPassword.value!=document.form1.userPassword1.value){
alert("對不起!確認密碼不等于登錄密碼");
return?false;
}
return?true;
}
| 用戶賬號 | |
| 用戶密碼 | |
| 確認密碼 | |
用戶密碼重置Servlet,RecoverPWDServlet.java
package?servlet;
import?java.io.IOException;
import?java.util.ArrayList;
import?javax.servlet.ServletException;
import?javax.servlet.annotation.WebServlet;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
import?dao.UserDao;
import?entity.User;
/**
*?重置用戶密碼Servlet
*/
@WebServlet("/RecoverPWDServlet")
public?class?RecoverPWDServlet?extends?HttpServlet?{
private?static?final?long?serialVersionUID?=?1L;
@Override
protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
resp.setContentType("text/html;charset=UTF-8");
String?path1?=?resp.encodeURL("recoverpwd.jsp");
req.getRequestDispatcher(path1).forward(req,?resp);
}
@Override
protected?void?doPost(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
resp.setContentType("text/html;charset=UTF-8");
HttpSession?session?=?req.getSession();
User?user?=?null;
UserDao?ud?=?new?UserDao();
String?userAccount?=?(String)?req.getAttribute("userAccount");
String?pwd?=?(String)?req.getAttribute("userPassword");
ud.updateUserPWD(pwd,userAccount);
user?=?ud.selectOneUserInfo(userAccount);
//更新session對象中的user中屬性。
session.setAttribute("user",?user);
//跳轉到用戶管理界面
ArrayList?list?=?ud.selectNotDeleteList();
req.setAttribute("list",?list);
String?msg?=?"用戶密碼已重置!";
req.setAttribute(msg,?msg);
String?path1?=?resp.encodeURL("userlist.jsp");
req.getRequestDispatcher(path1).forward(req,?resp);
}
}
數據庫操作--重置用戶密碼方法
/**重置用戶密碼
*?@param?pwd?用戶密碼
*?@param?userAccount?用戶賬號
*/
public?void?updateUserPWD(String?pwd,?String?userAccount)?{
Connection?conn?=?null;
PreparedStatement?ps?=?null;
//將用戶數據寫入數據庫
try?{
conn?=?DBUtils.getConnection();//獲取連接對象Connection
String?sql?=?"UPDATE?users?SET?user_password=?"
+?"?WHERE?user_account=?";
ps?=?conn.prepareStatement(sql);//格式化sql語句
//為?賦值
ps.setString(1,?pwd);
ps.setString(2,?userAccount);
ps.executeUpdate();
}?catch?(SQLException?e)?{
e.printStackTrace();
}?catch?(Exception?e)?{
e.printStackTrace();
}?finally?{
//釋放資源
DBUtils.closeAll(null,?ps,?conn);
}
}
到此,小小的用戶管理模塊就完成了。當初花不少時間自學和編寫的,這是培訓開課前老師安排的作業。當時javaSE差不多自學完,因為這個作業,就跳過了javaSE后面的學習。開始學習jdbc、MySQL和SQL語言、Servlet這些看視頻教程,其余的參考網絡資源。因為這個項目,積累了一些代碼量和代碼規范,以及養成了盡可能提高代碼質量而修改代碼的習慣。至今開課差不多2個月了,又做了三個小項目,會陸續貼上博客的。呵呵,謝謝觀看!
總結
以上是生活随笔為你收集整理的jsp mysql修改密码_Servlet+JSP+MySQL实现用户管理模块之七、实现用户信息更新和重置密码...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大雪节气的习俗有哪些(大雪节气的习俗)
- 下一篇: 不姓何的话何字可以入名吗?