修改密码的实现

修改密码的实现

内含JDBC的封装,详细资料请看JDBC工具类的封装

1、updatePw.jsp(一切所有错误皆在此页面显示,只有文本框的内容均合格后才能跳转到Servlet)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="accountManager.jsp"%>


    Title
    
    


    
新密码:
* 至少8-16个字符,至少1个大写字母,1个小写字母和1个数字!
确认新密码:



2、UserUpPwServlet(获取在session中存储的用户Id,然后把用户Id和修改的密码传入dao层)

如何获取当前登录的用户Id可以移步另一篇博文个人信息的查看

package com.university.controller;

import com.university.dao.UserDao;

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

public class UserUpPwServlet extends HttpServlet {
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
        UserDao dao = new UserDao();
        int result = 0;
        String newPassword2 = request.getParameter("newPassword2");
        HttpSession session = request.getSession(false);
        String userId = String.valueOf(session.getAttribute("userId"));
        result = dao.updatePw(newPassword2,userId);
        if (result == 1){
     
            session.removeAttribute("userId");
            response.sendRedirect(request.getContextPath() + "/login.jsp");
        } else {
     
            request.setAttribute("info","密码修改失败");
        }
    }
}

3、UserDao(收到从Servlet里传入的用户Id和密码,在数据库中进行修改,修改后再把结果返回给Servlet)

package com.university.dao;

import com.university.util.JdbcUtil;

import java.sql.PreparedStatement;
import java.sql.SQLException;

public class UserDao {
     
    private JdbcUtil util = new JdbcUtil();

    //更改密码
    public int updatePw(String password,String userId){
     
        String sql = "update users set password=? where userId=?";
        int result = 0;
        try {
     
            PreparedStatement ps = util.createStatement(sql);
            ps.setString(1,password);
            ps.setInt(2,Integer.valueOf(userId));
            result = ps.executeUpdate();
        } catch (SQLException e) {
     
            e.printStackTrace();
        } finally {
     
            util.close();
        }
        return result;
    }
}

4、web.xml(Servlet配置)

<servlet>
    <servlet-name>UserUpPwServletservlet-name>
    <servlet-class>com.university.controller.UserUpPwServletservlet-class>
servlet>
<servlet-mapping>
    <servlet-name>UserUpPwServletservlet-name>
    <url-pattern>/user/updatePwurl-pattern>
servlet-mapping>

5、测试

(1)查看原密码

修改密码的实现_第1张图片

(2)查看密码管理页面

修改密码的实现_第2张图片

(3)当什么都不填就提交时

修改密码的实现_第3张图片

(4)密码不一致时

修改密码的实现_第4张图片

(5)密码不符合格式时

修改密码的实现_第5张图片

(6)填写正确的密码后保存跳转到登录页面(此时密码为旧密码,需要我们重新输入,这里引用的Cookie,保存了上次登录的账号)

免密登录可以看看登录注册及免密的实现
修改密码的实现_第6张图片

(7)登陆后再看密码信息时则已经修改成功

修改密码的实现_第7张图片

你可能感兴趣的:(业务实现,servlet,web)