模拟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 相关文章推荐
JavaScript中获取元素索引的函数
Sep 10 Javascript
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
快速处理vue渲染前的显示问题
Mar 05 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
详解Vue router路由
Nov 20 Vue.js
原来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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
jquery multiSelect 多选下拉框
2010/07/09 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
基于node实现websocket协议
2016/04/25 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Mac安装python3的方法步骤
2019/08/09 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
2014年党支部学习材料
2014/05/19 职场文书
药品营销策划方案
2014/06/15 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
后天观后感
2015/06/08 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
Java 数组的使用
2022/05/11 Java/Android