后台servlet的代码
package com.mobilecn.kys.utils;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mobilecn.kys.beans.TbOrganization;
import com.mobilecn.kys.beans.TbPerson;
import com.mobilecn.kys.business.api.PersonBusinessApi;
import com.mobilecn.kys.business.impl.PersonBusinessImpl;
public class AutoCompleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init() throws ServletException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String keyword = request.getParameter("keyword");
keyword = StringUtil.changeCharacterToUtf(keyword);
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PersonBusinessApi personBusiness = new PersonBusinessImpl();
List personList = null;
Long personid = 0L;
String name = null;
String unit = null;
String identify = null;
TbOrganization oid=null;
StringBuffer bf = new StringBuffer();
PrintWriter out = response.getWriter();
keyword = (keyword == null ? "" : keyword.trim());
personList = personBusiness.select("username like '%" + keyword + "%'");
if (personList == null) {
return;
}
int lenthg = personList.size();
bf.append("[");
for (int i = 0; i < lenthg; i++) {
TbPerson person = (TbPerson) personList.get(i);
personid = person.getPersonid();
personid = personid == null ? 0L : personid;
name = person.getUsername();
name = name == null ? "" : name;
identify = person.getPersonfigure();
identify = identify == null ? "" : identify;
oid = person.getTbOrganization() == null ? null : person.getTbOrganization();
unit = oid == null ? null : person.getTbOrganization().getUnitname();
bf.append("{");
bf.append("'");
bf.append("text");
bf.append("'");
bf.append(":");
bf.append("'");
bf.append(name);
bf.append("'");
bf.append(",");
bf.append("'");
bf.append("content");
bf.append("'");
bf.append(":");
bf.append("'");
bf.append(unit);
bf.append(",");
bf.append(identify);
bf.append(",");
bf.append(personid);
bf.append("'");
bf.append("}");
if (i != lenthg - 1) {
bf.append(",");
}
}// for
bf.append("]");
bf.append(";");
out.write(bf.toString());
out.flush();
out.close();
out = null;
System.out.println("bfbfbfbf " + bf.toString());
}
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
this.doGet(arg0, arg1);
}
}
js文件看一下附件
ajax的实现方法
//<![CDATA[
/* 兼容IE 7.0以前版本 XMLHttpRequest */
if(window.ActiveXObject)//IE浏览器
{
window.XMLHttpRequest = function()
{ var x=null;
var progIds = [
'MSXML3.XMLHTTP.5.0',
'MSXML3.XMLHTTP.4.0',
'MSXML3.XMLHTTP.3.0',
'MSXML3.XMLHTTP.2.0',
'MSXML3.XMLHTTP',
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'];
for (var i=0; i<progIds.length; i++)
{
// alert(progIds[i]);
try { x = new ActiveXObject(progIds[i]); break; } catch (ex) {};
}
x=null;
x = new ActiveXObject("MSXML2.XMLHTTP");
if(!x)//异常,创建对象实例失败
{
window.alert("创建XMLHttp对象失败!");
return false;
}
return x;
}
}
var autoComplete = null;
var http_request = null;
// alert("aa");
window.onload = function pageLoadHdle()
{
var configuration =
{
instanceName: "autoComplete",
textbox: document.getElementById("magazineAuto"),
height: 200
//dataSource: this.completeDataSource
};
autoComplete = new neverModules.modules.autocomplete(configuration);
autoComplete.useContent = true;
/* 当useContent为false时,此功能生效,确定是否忽略速度,
如果不忽略速度,则效率提高30%左右,(没测试过,估计的)
,也就是没有高亮功能,适合纯DHTML的匹配 */
autoComplete.ignoreSpeed = true;
/* 开启方向键(小键盘) */
autoComplete.useArrow = true;
/* 当数据量较大时,自动截取前部分的数据,提高效率 */
autoComplete.autoSlice = true;
//autoComplete.sliceRange.high = 20;//显示前面20条
//要调节显示出来的结果的左右两边的宽度可以去CSS那里设置,autocomplete.css
/* 无论输入字符串在dataSource的何处,始终匹配 比如输入1,那么21,12都会显示出来*/
autoComplete.ignoreWhere = true;
/* 设置content的数据是否要在检索结果中显示出来 vincent于2007-8-22修改*/
autoComplete.ifcontent = true;
/* 一个空格代表一个或多个字符(串) */
autoComplete.useSpaceMatch = true;
/* 忽略大小写 */
autoComplete.ignoreCase = true;
autoComplete.callback = callbackHdle;
/* 以上为可选项,这里的示例都是默认值 } */
autoComplete.create();
// autoComplete.expandAllItem();//显示全部数据
}
function AjaxHdleMagazine(evt,magazineURL)
{
//alert("aaa");
// var conValue =document.getElementById('autoRemark').value
//if(conValue!=document.getElementById('magazineAuto').value)
//{
//开始初始化XMLHttpRequest对象
http_request = new XMLHttpRequest();
http_request.onreadystatechange = function() {loadCompleteData(evt)};
//确定发送请求方式,URL,及是否同步执行下段代码
http_request.open("GET", magazineURL+"?type=view&search=" + document.getElementById("magazineAuto").value, true);
http_request.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
http_request.send(null);
// }
//document.getElementById('autoRemark').value=conValue;
}
/* 异步得到数据后加载dataSource */
function loadCompleteData(evt)
{
// alert("000");
if(http_request.readyState == null){
http_request = new XMLHttpRequest();
alert("http_request.readyState 为空 !");
}
if(http_request.readyState==4)//判断对象状态
{
//alert("111");
if(http_request.status==200)//信息已成功返回,开始处理信息
{
dataSource = window.eval(http_request.responseText);
autoComplete.setDataSource(dataSource);
showAutocomplete(evt); http_request=null;
}else//页面不正常
{
alert("您所请求的页面不正常!");
return;
}
}
}
function showAutocomplete(evt)
{
autoComplete.hdleEvent(evt);
window.setTimeout(function () {autoComplete.closeAnimateImage();},1000);
}
/* callback 回调函数 */
function callbackHdle(autocompleteValue, autocompleteContent) {
window.setTimeout(function() {
document.getElementById('magazineAuto').value = autocompleteValue;
//alert(autocompleteValue);
// alert(autocompleteContent);
document.getElementById("level").value = autocompleteContent;
},1000);
}
//]]>
实现看附件
分享到:
相关推荐
【标题】"js做的地图" 指的是使用JavaScript编程语言来实现的地图功能。JavaScript是一种广泛应用于网页开发的脚本语言,它允许开发者在浏览器端动态处理数据和更新页面内容,包括创建交互式地图。 【描述】"线性图...
页面不用加载google服务器上的js文件,直接放在本地使用,加快加载速度
通过这种方式,Google能够确定哪些本地应用程序还没有Web等效物,从而为未来的开发指明方向。 #### 三、实施与标准化 在技术层面,Google已经在Google Gears中进行了原型设计,并将其逐步融入Google Chrome浏览器...
Google JavaScript 编码规范指南是为了解决JavaScript编程中的一致性和规范性问题,它为Google的开源工程及其他项目中使用JavaScript的开发者提供了一系列的编码标准。这份指南详细地介绍了如何在JavaScript编程中应...
your_file.proto`命令,可以将.proto文件编译成JavaScript代码,供protobuf-js库使用。 在实际应用中,protobuf-js-3.17.0可以广泛应用于前后端通信、游戏开发、物联网设备通信等领域,特别是在需要高效、紧凑数据...
在IT领域,Google Map API是开发人员常用的工具之一,它允许我们通过JavaScript编程语言与Google Maps服务进行交互,获取和处理地理位置信息。本篇文章将详细探讨如何利用Google Map API来获取地点的经纬度坐标以及...
我刚开始是因为我需要另一个项目中的JS色图,而Google并没有吐出任何好的结果,所以我决定自己动手做,并将其提供给公众:) 什么是色彩图? 好吧,如果您找到了这个存储库,我想您已经知道什么是色图,但是无论如何...
标题 "CefSharp 做成页签形式" 指的是使用 CefSharp 库在.NET 应用程序中实现一个具备多标签页功能的Web浏览器。CefSharp 是一个开源项目,它封装了Chromium Embedded Framework (CEF),允许开发者在Windows、Linux...
在这款名为"Go + Tauri + Vue.js 做的一款通信软件源码"的项目中,我们可以看到三个主要技术的结合:Go语言、Tauri框架和Vue.js前端库。这三个技术的融合构建了一个高效的桌面通信应用。下面将详细阐述每个部分的...
JavaScript代码精简,通常指的是对JS(JavaScript)和JAVASCRIPT编程语言的源代码进行优化,以减小文件大小,提高网页加载速度,降低服务器带宽消耗的过程。这一过程通常涉及两个主要方面:代码压缩和代码混淆。在...
结合使用 MATLAB Coder Add-On 和 Emscripten 编译器生成 JavaScript,可将您的 MATLAB 函数转换为高性能的客户端 JavaScript/WebAssembly 应用程序和库。 生成的代码可以在任何现代浏览器中编译、嵌入和运行; 包括...
Resumable.js是一个JavaScript库,专门用于实现分片上传,它支持断点续传,兼容多种浏览器,为前端提供了友好且灵活的API。 在后端,我们使用PHP作为服务器端语言来处理分片上传。PHP需要实现的功能包括: 1. 接收...
- **工作原理**:V8 在运行时会将 JavaScript 代码编译成机器码并执行,同时具备垃圾回收机制来自动管理内存。这种即时编译技术是 V8 高性能的关键所在。 ##### 2.2 从 HelloWorld 开始 - **示例**:最简单的示例...
JavaScript作为网页交互的核心语言,提供了多种方式来控制网页的行为,其中之一就是控制时间事件。 在JavaScript中,`setTimeout()`函数允许我们在指定的毫秒数后调用一个函数或执行某段代码。它的基本语法是`...
Node.js 是一个基于 Google 的 V8 引擎的事件驱动 I/O 的服务端 JavaScript 环境,V8 引擎执行 JavaScript 的性能非常好,速度相当快。非阻塞 I/O 模型具有轻量、高效的特点,Node.js 十分适用于搭建响应速度快、...
GWT(Google Web Toolkit)是Google推出的一个开源Java SDK,它允许开发者使用Java语言来编写前端Web应用,然后自动编译成优化过的JavaScript代码。这样做的好处是利用了Java的强类型、丰富的库和成熟的开发工具,...
nw.js是基于Google的Chromium浏览器内核和Node.js环境构建的,它结合了浏览器的渲染引擎和Node.js的服务器端功能,使得开发者能够利用Web前端的开发习惯和技能来开发桌面应用。版本号v0.48.3意味着这是nw.js的一个...