1. 程式人生 > >JavaWeb網上圖書商城完整項目--day02-18.修改密碼頁面處理

JavaWeb網上圖書商城完整項目--day02-18.修改密碼頁面處理

o-c submit hang 頁面 enc 兩個 table none ood

1、用戶登陸成功之後會顯示

技術分享

當點擊修改密碼的時候,會進入下面的頁面

技術分享

對應的是pwd.jsp這個文件

技術分享

我們把對jsp頁面前段的校驗都封裝在pwd.js中,在jsp中引入該js文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>pwd.jsp</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <link rel="stylesheet" type="text/css" href="<c:url value=‘/css/css.css‘/>">
    <link rel="stylesheet" type="text/css" href="<c:url value=‘/jsps/css/user/pwd.css‘/>">
    <script type="text/javascript" src="<c:url value=‘/jquery/jquery-1.5.1.js‘/>"></script>
    <%--引入pwd.js文件 --%>
    <script type="text/javascript" src="<c:url value=‘/jsps/js/user/pwd.js‘/>"></script>
<script src="<c:url value=‘/js/common.js‘/>"></script> </head> <body> <div class="div0"> <span>修改密碼</span> </div> <div class="div1"> <form action="<c:url value=‘/jsps/msg.jsp‘/>" method="post" target="_top"> <input type="hidden" name="method" value=""/> <table> <tr> <td><label class="error">$
{msg }</label></td> <td colspan="2">&nbsp;</td> </tr> <tr> <td align="right">原密碼:</td> <td><input class="input" type="password" name="loginpass" id="loginpass" value=""/></td> <td><label id="loginpassError" class="error"></label></td> </tr> <tr> <td align="right">新密碼:</td> <td><input class="input" type="password" name="newpass" id="newpass" value=""/></td> <td><label id="newpassError" class="error"></label></td> </tr> <tr> <td align="right">確認密碼:</td> <td><input class="input" type="password" name="reloginpass" id="reloginpass" value=""/></td> <td><label id="reloginpassError" class="error"></label></td> </tr> <tr> <td align="right"></td> <td> <img id="vCode" src="/VerifyCodeServlet
" border="1"/> <a href="javascript:changeVerifyCode();">看不清,換一張</a> </td> </tr> <tr> <td align="right">驗證碼:</td> <td> <input class="input" type="text" name="verifyCode" id="verifyCode" value=""/> </td> <td><label id="verifyCodeError" class="error"></label></td> </tr> <tr> <td align="right"></td> <td><input id="submit" type="submit" value="修改密碼"/></td> </tr> </table> </form> </div> </body> </html>

我們來看看pwd.js的代碼

$(function() {    
    /*
     * 1. 給註冊按鈕添加submit()事件,完成表單校驗
     */
    $("#submit").submit(function(){
        $("#msg").text("");
        var bool = true;
        $(".input").each(function() {
            var inputName = $(this).attr("name");
            if(!invokeValidateFunction(inputName)) {
                bool = false;
            }
        });
        return bool;
    });
    
    /*
     * 3. 輸入框推動焦點時進行校驗
     */
    $(".input").blur(function() {
        var inputName = $(this).attr("name");
        invokeValidateFunction(inputName);
    });
});

/*
 * 輸入input名稱,調用對應的validate方法。
 * 例如input名稱為:loginname,那麽調用validateLoginname()方法。
 */
function invokeValidateFunction(inputName) {
    inputName = inputName.substring(0, 1).toUpperCase() + inputName.substring(1);
    var functionName = "validate" + inputName;
    return eval(functionName + "()");    
}

/*
 * 校驗密碼
 */
function validateLoginpass() {
    var bool = true;
    $("#loginpassError").css("display", "none");
    var value = $("#loginpass").val();
    if(!value) {// 非空校驗
        $("#loginpassError").css("display", "");
        $("#loginpassError").text("密碼不能為空!");
        bool = false;
    } else if(value.length < 3 || value.length > 20) {//長度校驗
        $("#loginpassError").css("display", "");
        $("#loginpassError").text("密碼長度必須在3 ~ 20之間!");
        bool = false;
    } else {// 驗證原錯誤是否正確
        $.ajax({
            cache: false,
            async: false,
            type: "POST",
            dataType: "json",
            data: {method: "validateLoginpass", loginpass: value},
            url: "/goods/UserServlet",
            success: function(flag) {
                if(!flag) {
                    $("#loginpassError").css("display", "");
                    $("#loginpassError").text("原密碼錯誤!");
                    bool = false;                
                }
            }
        });
    }
    return bool;
}

// 校驗新密碼
function validateNewpass() {
    var bool = true;
    $("#newpassError").css("display", "none");
    var value = $("#newpass").val();
    if(!value) {// 非空校驗
        $("#newpassError").css("display", "");
        $("#newpassError").text("新密碼不能為空!");
        bool = false;
    } else if(value.length < 3 || value.length > 20) {//長度校驗
        $("#newpassError").css("display", "");
        $("#newpassError").text("新密碼長度必須在3 ~ 20之間!");
        bool = false;
    }
    return bool;
}

/*
 * 校驗確認密碼
 */
function validateReloginpass() {
    var bool = true;
    $("#reloginpassError").css("display", "none");
    var value = $("#reloginpass").val();
    if(!value) {// 非空校驗
        $("#reloginpassError").css("display", "");
        $("#reloginpassError").text("確認密碼不能為空!");
        bool = false;
    } else if(value != $("#newpass").val()) {//兩次輸入是否一致
        $("#reloginpassError").css("display", "");
        $("#reloginpassError").text("兩次密碼輸入不一致!");
        bool = false;
    }
    return bool;    
}

/*
 * 校驗驗證碼
 */
function validateVerifyCode() {
    var bool = true;
    $("#verifyCodeError").css("display", "none");
    var value = $("#verifyCode").val();
    if(!value) {//非空校驗
        $("#verifyCodeError").css("display", "");
        $("#verifyCodeError").text("驗證碼不能為空!");
        bool = false;
    } else if(value.length != 4) {//長度不為4就是錯誤的
        $("#verifyCodeError").css("display", "");
        $("#verifyCodeError").text("錯誤的驗證碼!");
        bool = false;
    } else {//驗證碼是否正確
        $.ajax({
            cache: false,
            async: false,
            type: "POST",
            dataType: "json",
            data: {method: "validateVerifyCode", verifyCode: value},
            url: "/goods/UserServlet",
            success: function(flag) {
                if(!flag) {
                    $("#verifyCodeError").css("display", "");
                    $("#verifyCodeError").text("錯誤的驗證碼!");
                    bool = false;                    
                }
            }
        });
    }
    return bool;
}

//實現驗證碼圖片的切換功能
function changeVerifyCode() {
$("#vCode").attr("src","/goods/VerifyCodeServlet?a="+new Date().getTime());
}

 

在頁面使用ajax訪問了UserServlet中的validateVerifyCode和validateLoginpass的兩個方法,其中UserServlet繼承BaseServlet

JavaWeb網上圖書商城完整項目--day02-18.修改密碼頁面處理