ajax+jquery实现异步用户存在验证+InteliJ+servlet+firebug+firefox

----------------ajax.html-----------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript" src="jslib/jquery.js"></script>
    <script type="text/javascript" src="jslib/verify.js"></script>

</head>
<body>

       用户名: <input type="text" id="userName" />
<input type="button" value="提交" onclick='verify()' />
<div id="result" ondblclick='hehe()'>aaa</div>

</body>
</html>

-----------------------------jquery.js1.4.2-----------------
---------------------------------------verify.js-----------

//定义 用户名校验的方法
function verify(){
  //  alert("aaa");
    //1.获取文本框中的内容
       //document.getElementById("userName"); dom的方式
    //jquery 的查找节点的方式 ,参数中#加上id属性值可以找到一个节点。
    //jquery的方法返回的都是jqeury的对象,可以继续在上面的执行其他的jquery方法
   var jqueryObj= $("#userName");
    //获取节点的值
    var userName=jqueryObj.val();
//   alert(userName);
    //2.将文本框中的数据发送给服务器段的servert
    //使用jquer的XMLHTTPrequest对象get请示的封装
      $.get("AJAXServer?name="+userName,null,callback);


   
}
function hehe(){
    alert("dfdfdfdf");

}
//回调函数
function callback(data){
  //  alert("数据回来了");
           //3.接收服务器端返回的数据
  //      alert(data);
    //4.将服务器端返回的数据动态的显示到页面上
    //找到保存结果信息的节点
    var resultObj=$("#result");
    //动态 的改变页面中div节点中的内容
    resultObj.html(data);
    alert("aaa");
}
----------------------AJAXServer.java-------------------------
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

/**
* Created by IntelliJ IDEA.
* User: ming
* Date: 2008-6-11
* Time: 11:11:34
* To change this template use File | Settings | File Templates.
*/
public class AJAXServer extends HttpServlet{
    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        doGet(httpServletRequest, httpServletResponse);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
//            request.setCharacterEncoding("UTF-8");
//            response.setContentType("text/html;charset=gb18030");

            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();


            //1.取参数
            String old = request.getParameter("name");
            //String name = new String(old.getBytes("iso8859-1"),"UTF-8");
            String name = URLDecoder.decode(old,"UTF-8");
            //2.检查参数是否有问题
            if(old == null || old.length() == 0){
                out.println("用户名不能为空");
            } else{
//                String name = URLDecoder.decode(old,"UTF-8");
//                byte[] by = old.getBytes("ISO8859-1");
//                String name = new String(by,"utf-8");
//                String name = URLDecoder.decode(old,"utf-8");
                //3.校验操作
//                String name = old;
                if(name.equals("wangxingkui")){
                    //4。和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面段,而不是将一个新的页面发送给用户
                    //写法没有变化,本质发生了改变
                    out.println("用户名[" + name + "]已经存在,请使用其他用户名, ");
                } else{
                    out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " );
                }
            }
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}
--------------------------verify1.js简化写法-------------------------
function verify(){
    $.get("AJAXServer?name="+$('#userName').val(),null,function(data){
        $("#result").html(data)
    })  ;
}


----------------------------写入第二个参数--------------
    function verify(){
        $.get("AJAXServer","name="+$('#userName').val(),function(data){
            $("#result").html(data)
        })  ;
}

你可能感兴趣的:(jquery,Ajax,servlet,Firebug,firefox)