亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

登錄的頁面布局以及js的驗(yàn)證,ajax的驗(yàn)證碼驗(yàn)證

hedzr / 2123人閱讀

摘要:頁面向傳遞一個(gè)參數(shù),其值表示調(diào)用那個(gè)方法用戶名密碼驗(yàn)證碼換一張登錄重置代碼得到所有的錯(cuò)誤信息,循環(huán)遍歷之。

jsp頁面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



">

My JSP "login.jsp" starting page



    



 










" method="post" id="formLogin">

用戶名
密碼
驗(yàn)證碼
換一張
????





js代碼:
$(function(){

  //得到所有的錯(cuò)誤信息,循環(huán)遍歷之。調(diào)用一個(gè)方法來確定是否顯示錯(cuò)誤信息!
    $(".errorClass").each(function() {
        showError($(this));//遍歷每個(gè)元素,使用每個(gè)元素來調(diào)用showError方法
    });
     // 輸入框得到焦點(diǎn)隱藏錯(cuò)誤信息
     $(".inputClass").focus(function() {
         var labelId = $(this).attr("id") + "Error";//通過輸入框找到對應(yīng)的label的id
         $("#" + labelId).text("");//把label的內(nèi)容清空!
         showError($("#" + labelId));//隱藏沒有信息的label
     });
     //輸入框失去焦點(diǎn)進(jìn)行校驗(yàn)
     $(".inputClass").blur(function() {
         var id = $(this).attr("id");//獲取當(dāng)前輸入框的id
         var funName = "validate" + id.substring(0,1).toUpperCase() + id.substring(1) + "()";//得到對應(yīng)的校驗(yàn)函數(shù)名
         eval(funName);//執(zhí)行函數(shù)調(diào)用,把字符串當(dāng)成js代碼執(zhí)行
     });         
 });

function login(){

var bool = true;//表示校驗(yàn)通過
if(!validateLoginname()) {
    bool = false;
}
if(!validateLoginpass()) {
    bool = false;
}
if(!validateVerifyCode()){
    bool = false;
}
if(bool) {
    var loginname=$("#loginname").val();
    var loginpass=$("#loginpass").val();
    $.ajax({
        cache: false,
        async: false,
        type: "POST",
        dataType: "json",
        data: {method: "loginValidate", login: loginname,password:loginpass},
        url: "/onlineexam/LoginStudentServlet",
        success: function(data) {
              if(data.success){
                  if(data.successExam){
                      window.location.href="/onlineexam/demo.jsp";
                  }else{
                      window.location.href="/onlineexam/exam.jsp";
                  }
                  
              }else{
                  $.messager.alert("警告",data.msg);
              }
        }
    });    
}

}

// 校驗(yàn)登錄名
function validateLoginname() {

var bool = true;
$("#loginnameError").css("display", "none");
var value = $("#loginname").val();
if(!value) {// 非空校驗(yàn)
    $("#loginnameError").css("display", "");
    $("#loginnameError").text("用戶名不能為空!");
    bool = false;
} else if(value.length < 3 || value.length > 20) {//長度校驗(yàn)
    $("#loginnameError").css("display", "");
    $("#loginnameError").text("用戶名長度必須在3 ~ 20之間!");
    bool = false;
}
return bool;

}
function validateLoginpass() {

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

}

// 校驗(yàn)驗(yàn)證碼
function validateVerifyCode() {

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

}

// 判斷當(dāng)前元素是否存在內(nèi)容,如果存在顯示,不存在不顯示!
function showError(ele) {

var text = ele.text();//獲取元素的內(nèi)容
if(!text) {//如果沒有內(nèi)容
    ele.css("display", "none");//隱藏元素
} else {//如果有內(nèi)容
    ele.css("display", "");//顯示元素
}

}
// 換一張驗(yàn)證碼
function _hyz(){
var img=document.getElementById("imgVcode");
//需要給出一個(gè)參數(shù),這個(gè)參數(shù)每次都不同,這樣才不會(huì)因?yàn)闉g覽器的緩存,使得不能進(jìn)行換一張
img.src="/onlineexam/VerifyCodeServlet?a="+new Date().getTime();

  } 

后臺(tái)web.servlet層:
service層dao層就不一一寫出了。

public class LoginStudentServlet extends BaseServlet {

StudentService studentService = new StudentService();
ExamService examService=new ExamService();
public String ajaxValidateLoginname(HttpServletRequest req,
        HttpServletResponse resp) throws ServletException, IOException {
    // 1. 獲取用戶名
    String loginname = req.getParameter("loginname");
    //2. 通過service得到校驗(yàn)結(jié)果
    boolean b = studentService.ajaxValidateLoginname(loginname);
    resp.getWriter().print(b);
    return null;
}

public String ajaxValidateVerifyCode(HttpServletRequest req,
        HttpServletResponse resp) throws ServletException, IOException {
    //1. 獲取輸入框中的驗(yàn)證碼
    String verifyCode = req.getParameter("verifyCode");
    // 2. 獲取圖片上真實(shí)的校驗(yàn)碼
    String vcode = (String) req.getSession().getAttribute("vCode");
    boolean b = verifyCode.equalsIgnoreCase(vcode);
    resp.getWriter().print(b);
    return null;
}

// 登錄功能

public void loginValidate(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException, SQLException {
    String name = req.getParameter("login");
    String password = req.getParameter("password");
    Student student = studentService.login(name, password);
    Score score=examService.findStudent(name);
    Json json = new Json();
    if (student == null) {
        json.setSuccess(false);
        json.setMsg("用戶名或密碼錯(cuò)誤");
        resp.getWriter().print(json.toString());
        resp.getWriter().close();
        //return "r:/loginStudent.jsp";
    } else {
        if(score!=null){
            json.setSuccessExam(true);
        }
        HttpSession session = req.getSession();
        session.setAttribute("sessionStudent",student);
        session.setAttribute("sessionScore",score);
        //String string=(String) session.getAttribute("sessionName");
        //System.out.println(string);
        json.setSuccess(true);
        json.setMsg("登錄成功");
        json.setStudent(student);        
        resp.getWriter().print(json);
        resp.getWriter().close();
        //return "r:/exam.jsp";//重定向到主頁
    }
}

}
注意:這里我自己編寫了一個(gè)BaseServlet繼承了HttpServlet然后通過獲得method參數(shù),然后通過反射調(diào)用對應(yīng)的方法。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/107012.html

相關(guān)文章

  • 登錄頁面布局以及js驗(yàn)證,ajax驗(yàn)證驗(yàn)證

    摘要:頁面向傳遞一個(gè)參數(shù),其值表示調(diào)用那個(gè)方法用戶名密碼驗(yàn)證碼換一張登錄重置代碼得到所有的錯(cuò)誤信息,循環(huán)遍歷之。 jsp頁面: My JSP login.jsp starting page body{ background-image:url(image/bg.jpg); background-repeat: repeat-x;...

    RichardXG 評論0 收藏0
  • PHP 實(shí)現(xiàn)用戶注冊登錄功能

    摘要:本項(xiàng)目發(fā)布在實(shí)驗(yàn)樓,分為四部分內(nèi)容前端頁面制作,驗(yàn)證碼制作,實(shí)現(xiàn)注冊登陸,功能完善。全部章節(jié)及代碼詳解可以在實(shí)驗(yàn)樓中在線完成實(shí)現(xiàn)用戶注冊登錄功能驗(yàn)證碼制作一實(shí)驗(yàn)簡介本次實(shí)驗(yàn)將會(huì)帶領(lǐng)大家使用面向?qū)ο蟮乃枷敕庋b一個(gè)驗(yàn)證碼類。 項(xiàng)目簡介:本課程通過使用 PHP 及 Web 前端技術(shù)實(shí)現(xiàn)一個(gè)網(wǎng)站注冊登錄入口頁面,學(xué)習(xí)并實(shí)踐 PHP 編程,GD庫,MySQL 擴(kuò)展,Bootstrap 響應(yīng)式布局...

    crelaber 評論0 收藏0
  • 前端框架快速開發(fā)靜態(tài)頁面

    摘要:框架開發(fā)解放了生產(chǎn)力,讓一個(gè)靜態(tài)頁面效果更逼真,也讓用戶體驗(yàn)逐漸上去,但是目前對網(wǎng)站的需求主要還是為了展示和宣傳一些東西,反觀教育機(jī)構(gòu)和政府部門的網(wǎng)站都是偏動(dòng)畫少,體現(xiàn)了公關(guān)的嚴(yán)肅性。 showImg(https://segmentfault.com/img/remote/1460000009262879?w=1183&h=522); 前言 最近很久沒有寫文章,不忙也忙的生活節(jié)奏,博客...

    李世贊 評論0 收藏0

發(fā)表評論

0條評論

hedzr

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<