日期:2014-05-16 浏览次数:20731 次
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="js/verify.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript">
</script>
<title>用户名验证</title>
</head>
<body>
用户名校验ajax实例,请输入用户名:<br/>
<!--
<form action="AjaxServer" method="post">
用户名:<input type="text" name="name"/>
<input type="submit" value="检验"/>
</form>
-->
<!--ajax可以不需要使用表单来进行数据提交,因此不用写表单标签 -->
<!--ajax方式不需要name属性,需要一个id的属性-->
用户名:<input type="text" id="userName"/>
<input type="button" value="检验一下" onclick="verify()"/>
<!--这个div用于存放服务器端返回的信息开始为空,id属性利用dom的方式找到某个节点-->
<div id="result"></div>
</body>
</html>
/**
* Created by IntelliJ IDEA.
* User: 赵光鹏
* Date: 2011-11-16
* Time: 15:35:55
* Alt+enter 导入包修复的功能
* To change this template use File | Settings | File Templates.
*/
public class AjaxServer extends HttpServlet{
@Override
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
//解决乱码问题,一定要在获取getWriter对象之前
httpServletResponse.setCharacterEncoding("utf-8");
httpServletResponse.setContentType("text/html;charset-utf-8");
PrintWriter out = httpServletResponse.getWriter();
//1.取页面端传过来的页面信息
String old = httpServletRequest.getParameter("name"); //name是从js中定义的url中参数获取的
// String name = new String(old.getBytes("iso8859-1"),"utf-8");
String name = URLDecoder.decode(old,"UTF-8");
System.out.println("转换编码前"+old);
System.out.println("转换编码前"+old);
//2.检查参数是否有问题
if(name==null||name.length()==0){
out.println("用户名不能为空");
}else{
//3. 校验操作
if(name.equals("guangpeng")){
//4 .和传统应用不同,这一步是将用户感兴趣的数据返回给页面段,而不是将新的页面传递给用户
out.println("欢迎您"+name+"!");
} else{
out.println(name+"--11用户尚未注册,请先注册!");
}
}
}
@Override
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
doGet(httpServletRequest, httpServletResponse);
}
}
function verify(){
// var url = "AjaxServer?name="+encodeURI(encodeURI($("#userName").val()));
/*
* jquery链式编程
* var userName = $("#userName").val();
* */
//jquery返回都是jquery对象,可以继续在上面执行其他的方法
var jqueryObj = $("#userName");
//获取节点的值
var userName = jqueryObj.val();
// alert(userName);
//2.将文本框中的数据发送给服务器段的servlet
//使用jquery的XMLHTTPrequest对象请求的封装
$.get("AjaxServer?name="+userName,null,callback);
//
}
//回调函数,是数据异步交互的一个体现
function callback(data){
//3. 接收服务器端返回的数据
// alert("服务器的数据回来了!!!");
//alert(data);
$("#result").html(data);
//4.将服务器返回的数据动态的显示在网页上面
}