模拟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 相关文章推荐
Array.prototype.slice 使用扩展
Jun 09 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
用JS在浏览器中创建下载文件
Mar 05 Javascript
利用javascript实现全部删或清空所选的操作
May 27 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
jquery $(document).ready()和window.onload的区别浅析
Feb 04 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
对vue中methods互相调用的方法详解
Aug 30 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 Javascript
利用js实现简单开关灯代码
Nov 23 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 MVC
2014/09/10 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
Node.js安装配置图文教程
2017/05/10 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python内存映射文件读写方式
2020/04/24 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
长青弘远的面试题
2012/06/09 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
研修第一天随笔感言
2014/02/15 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
学术会议开幕词
2016/03/03 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书