模拟jQuery ajax服务器端与客户端通信的代码


Posted in Javascript onMarch 28, 2011

功能如下:

如果用户名为空提示“用户名不能为空 ”   

如果用户名存在提示“用户名[xxxxxx]已经存在,请使用其他用户名, 4 ”          

如果用户名不存在提示“用户名[xxxxxx]尚未存在,可以使用该用户名注册, 5”

运行效果如下: 

模拟jQuery ajax服务器端与客户端通信的代码

模拟jQuery ajax服务器端与客户端通信的代码

模拟jQuery ajax服务器端与客户端通信的代码

模拟jQuery ajax服务器端与客户端通信的代码

             
目录结构:
模拟jQuery ajax服务器端与客户端通信的代码 
服务器端AjaxServer
package com.ljq.test; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.net.URLDecoder; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
@SuppressWarnings("serial") 
public class AjaxServer extends HttpServlet { 
@Override 
protected void doGet(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, IOException { 
try { 
//设置页面utf-8编码 
response.setContentType("text/html;charset=utf-8"); 
PrintWriter out = response.getWriter(); 
Integer total = (Integer) request.getSession().getAttribute("total"); 
int temp = 0; 
if (total == null) { 
temp = 1; 
} else { 
temp = total.intValue() + 1; 
} 
request.getSession().setAttribute("total", temp); 
// 1.取参数 
String param = request.getParameter("name"); 
String name = URLDecoder.decode(param, "UTF-8"); 
// 2、检查参数是否有效 
if (param == null || param.length() == 0) { 
out.println("用户名不能为空"); 
} else { 
// 3、校验操作 
if (name.equals("linjiqin")) { 
// 4、返回结果数据 
out.println("用户名[" + name + "]已经存在,请使用其他用户名, " + temp); 
} else { 
out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " + temp); 
} 
} 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
@Override 
protected void doPost(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, IOException { 
doGet(request, response); 
} 
}

配置web.xml
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
<servlet> 
<servlet-name>AjaxServer</servlet-name> 
<servlet-class>com.ljq.test.AjaxServer</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>AjaxServer</servlet-name> 
<url-pattern>/servlet/ajaxServer</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
<welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
</web-app>

index.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<base href="<%=basePath%>"> 
<title>My JSP 'index.jsp' starting page</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"> 
<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.3.1.js"></script> 
<script type="text/javascript" src="<%=request.getContextPath() %>/js/validate.js"></script> 
</head> 
<body> 
<!--html5的标准: 首先标签名要小写,其次标签必须关闭,第三属性名遵循骆驼命名法,第四属性值必须位于双引号中--> 
请输入用户名:<br/> 
<input id="userName"/> 
<input type="button" value=" 校 验 " onclick="verify();"/> 
<div id="result"></div> 
</body> 
</html>

validate.js
function verify() { 
// 解决中文乱码方法一: 页面端发出的数据作一次encodeURI,服务器段使用new String(name.getBytes("iso8859-1"),"UTF-8"); 
// 解决中文乱码方法二: 页面端发出的数据作两次encodeURI,服务器段使用URLDecoder.decode(name,"UTF-8") 
var url = "servlet/ajaxServer?name=" + encodeURI(encodeURI($("#userName").val())); 
//注意url前不要加"/",否则无法访问url 
//var url = "/servlet/ajaxServer?name=" + encodeURI(encodeURI($("#userName").val())); //错误 
url = convertURL(url); 
$.get(url, null, function(data) { 
$("#result").html(data); 
}); 
} 
// 给url地址增加时间戳,骗过浏览器,不读取缓存 
function convertURL(url) { 
// 获取时间戳 
var timstamp = (new Date()).valueOf(); 
// 将时间戳信息拼接到url上 
if (url.indexOf("?") >= 0) { 
url = url + "&t=" + timstamp; 
} else { 
url = url + "?t=" + timstamp; 
} 
return url; 
}
Javascript 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
angular.js之路由的选择方法
Sep 24 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
vue-cli webpack配置文件分析
May 20 Javascript
详解JavaScript中的坐标和距离
May 27 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 #Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
Mar 28 #Javascript
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 #Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 #Javascript
jQuery中调用WebService方法小结
Mar 28 #Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 #Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 #Javascript
You might like
PHP4实际应用经验篇(7)
2006/10/09 PHP
php zend解密软件绿色版测试可用
2008/04/14 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Python3 元组tuple入门基础
2020/02/09 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
小学生暑假感言
2014/02/06 职场文书
幼儿园运动会口号
2014/06/07 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
蜗居观后感
2015/06/11 职场文书
运动会开幕式主持词
2015/07/01 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
mysql批量新增和存储的方法实例
2021/04/07 MySQL
JavaScript中reduce()的用法
2022/05/11 Javascript