spring+jquery+ajax 檢測用戶名是否存在

spring+jquery+ajax 檢測用戶名是否存在

話不多說,直接上代碼

register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CheckUser</title>
</head>
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
    function ine(data) {

        if (data == 1) {
            document.getElementById("checkUN").innerHTML = "<b style='color: red'>用戶名已存在</b>";
        } else if (data == 2) {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>不能爲空</b>";
        } else if (data == 3) {
            document.getElementById("checkUN").innerHTML = "<b style='color:green'>該用戶名可用</b>"
        } else if (data == 0) {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>ajax成功返回值爲空</b>"
        } else {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>未知錯誤</b>"
        }
    }

    function checkUser() {
        var name = $('#userName').val();
        var s = 0;
        $.ajax({
            type : "post",
            url : 'checkUser.jsp',
            data : "name=" + name,
            success : function(data) {
                ine(data);
            }
        });

    }

    $(document).ready(function() {
        $("#userName").blur(function() {
            checkUser();
        });
    })
</script>
<body>

    用戶名 :
    <input type="text" name="userName" id="userName">
    <span id="checkUN"></span>

</body>
</html>

checkUser.jsp


<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
    String name = request.getParameter("name");

    if (name.trim().equals("cong")) {
        out.print(1);
    } else if (name.trim().equals("")) {
        out.print(2);
    } else {
        out.print(3);
    }
%>

這是簡單版的,就是2個jsp頁面,ajax的url提交到checkUser.jsp頁面處理,代碼很好理解,就不寫註解了。。。

運行——

eclipese---img1.jpg

當文本框失去焦點時,js腳本執行,ajax 提交到checkUser.jsp 頁面。check.jsp判斷處理 out.print(1) . ajax成功返回數據 1,把 data=1 傳入function ine(data) 進行判斷處理。這是簡單版沒有連接mysql數據庫。。。

———————————Spring +jquery+ajax—–Start——————-

register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CheckUser</title>
</head>
<script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
    function ine(data) {

        if (data == 1) {
            document.getElementById("checkUN").innerHTML = "<b style='color: red'>用戶名已存在</b>";
        } else if (data == 2) {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>不能爲空</b>";
        } else if (data == 3) {
            document.getElementById("checkUN").innerHTML = "<b style='color:green'>該用戶名可用</b>"
        } else if (data == 0) {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>ajax成功返回值爲空</b>"
        } else {
            document.getElementById("checkUN").innerHTML = "<b style='color:red'>未知錯誤</b>"
        }
    }

    function checkUser() {
        var name = $('#userName').val();
        var s = 0;
        $.ajax({
            type : "post",
            url : '${pageContext.request.contextPath}/user/checkUser.action',
            data : "name=" + name,
            success : function(data) {
                ine(data);
            }
        });

    }

    $(document).ready(function() {
        $("#userName").blur(function() {
            checkUser();
        });
    })
</script>
<body>

    用戶名 :
    <input type="text" name="userName" id="userName">
    <span id="checkUN"></span>

</body>
</html>

關鍵是 ‘${pageContext.request.contextPath}/user/checkUser.action’ 這裏提交的路徑不同

UserController.java

package com.dy.nygl.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.jasper.tagplugins.jstl.core.Out;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.dy.nygl.pojo.User;
import com.dy.nygl.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController {

    @Resource(name = "userService")
    private UserService userService;

    @RequestMapping(value = "checkUser.action", method = { RequestMethod.POST })
    public void checkUser(HttpServletRequest request, HttpServletResponse response, HttpSession session)
            throws ServletException, IOException {

        PrintWriter out = response.getWriter();
        String name = request.getParameter("name");
        if (name.trim().equals("")) {
            out.print(2);// 2是不能爲空
        } else {
            User user = userService.checkUser(name);
            if (user != null) {
                out.print(1);// 1用戶名已存在F
            } else {
                out.print(3);// 用戶名可以用
            }
        }
    }
}

這是Controller層

eclipese---img2.jpg

UserServiceImpl.java

package com.dy.nygl.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dy.nygl.mapper.UserMapper;
import com.dy.nygl.pojo.User;
import com.dy.nygl.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService {

    @Resource(name = "userDao")
    private UserMapper userDao;

    @Override
    public User checkUser(String account) {
        System.out.println("checkUser--------->");
        User user = userDao.selectUserByAccount(account);
        if (user != null) {
            System.out.println("getUser:" + user);
            return user;
        } else {
            System.out.println("user爲空");
        }
           return null;
    }
}

Service層
eclipese---img3.jpg

運行—
eclipese---img4.jsp

SpringMvc就是Console控制檯的log比較多,不過更詳細知道程序的運行狀態

好了,不吹了,代碼量比較大,需要詳細瞭解的程序員朋友們可以下載源碼,這是我現在常用的一個完整的SpringMvc框架上寫的,SpringMvc可完美運行,源碼中有具體jquery ajax 實現文本框失去焦點檢測用戶名是否存在的代碼。。。

SpringMvc完美框架:源碼下載 springmvc+jquery+ajax

QQ : 1099749430
歡迎程序員朋友加我QQ,一起技術交流,共同進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章