模拟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 相关文章推荐
ie支持function.bind()方法实现代码
Dec 27 Javascript
JQuery之focus函数使用介绍
Aug 20 Javascript
判断访客终端类型集锦
Jun 05 Javascript
JS实现的Select三级下拉菜单代码
Aug 20 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 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
php下封装较好的数字分页方法
2010/11/23 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
CI框架的安全性分析
2016/05/18 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
React 组件间的通信示例
2018/06/14 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
js验证账户名是否重复
2020/05/26 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
python实现微信防撤回神器
2019/04/29 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python中有几个关键字
2020/06/04 Python
用python进行视频剪辑
2020/11/02 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
机房搬迁方案
2014/05/01 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
精神病医院见习报告
2014/11/03 职场文书
大国崛起英国观后感
2015/06/02 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python