//action 代码。。。。
public ActionForward suggest(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Throwable {
response.setContentType("application/xml;charset=UTF-8");
response.setHeader("Charset","UTF-8");
response.setCharacterEncoding("UTF-8");
String output = "";
//处理接受的参数
String key = getString(request.getParameter("fname"));
if(!"".equals(key)){
ArrayList matchList = getMatchString(key);
if(!matchList.isEmpty()){
output += "<response>";
for(int i=0;i<matchList.size();i++){
String match = matchList.get(i).toString();
output += "<item>"+match+"</item>";
}
output +="</response>";
}
}
response.setContentType("text/xml");
response.getWriter().print(output);
return null;
}
public ArrayList getMatchString(String key){
ArrayList prod = new ArrayList();
List<Product> productList = (List<Product>)productService.loadProduct();
if(productList.size() != 0){
for (Product product : productList) {
prod.add(product.getFname());
}
}
ArrayList result = new ArrayList();
if(!prod.isEmpty()){
int k = 0;
for(int i=0;i<prod.size();i++){
String str = prod.get(i).toString();
if(str.startsWith(key)){
k++;
result.add(str);
if(k == 4){
break;
}
}
}
}
return result;
}
//客服端代码。。。。。。。。。。。 脚本
//================ 搜索提示方法
function createXMLHttpRequest(){
if (window.ActiveXObject){
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest){
XMLHttpReq = new XMLHttpRequest();
}
}
//出来服务器响应效果
function handleResponse(){
if(XMLHttpReq.readyState == 4){
if(XMLHttpReq.status == 200){
clearTable();
var out = "";
var res = XMLHttpReq.responseXML;
var items = res.getElementsByTagName("item");
for(var i=0;i<items.length;i++){
addRow(items(i).firstChild.nodeValue);
}
setDivStyle();
}
}
}
// 清除表格中的结果
function clearTable(){
var content = document.getElementById("content");
while(content.childNodes.length>0){
content.removeChild(content.childNodes[0]);
}
}
//向输入提示的表格中添加一条记录
function addRow(item){
var content = document.getElementById("content");
var row = document.createElement("tr");
var cell = document.createElement("td");
cell.appendChild(document.createTextNode(item));
cell.onmouseover = function(){this.style.background="#00CCCC"};
cell.onmouseout = function(){this.style.background="#f5f5f1"};
cell.onclick = function(){
document.getElementById("fname").value = this.innerHTML;
document.getElementById("suggest").style.visibility="hidden"}; //hidden
row.appendChild(cell);
content.appendChild(row);
}
//发送客户端请求
function sendRequest(url){
createXMLHttpRequest();
XMLHttpReq.open("GET",url,true);
//指定响应函数
XMLHttpReq.onreadystatechange = handleResponse;
XMLHttpReq.send(null);
}
//调用AJAX自动提示功能
function suggest(){
var fname = document.getElementById("fname").value;
fname = fname.replace(/(^\s*)|(\s*$)/g,"");
sendRequest("ProductAction.do?postMethod=suggest&fname="+fname)
}
// 设置输入提示框的位置和风格
function setDivStyle(){
var suggest = document.getElementById("suggest");
suggest.style.border = "black 1px solid";
suggest.style.left = 475;
suggest.style.top = 147;
suggest.style.width = 262;
suggest.style.backgroundColor ="";
document.getElementById("suggest").style.visibility = "block";
}
//客服端页面。。。。。。。。
<table width="80%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td width="29%" align="right"><span
style="color: white;font-size:20px;font-weight: bold">商品搜索</span></td>
<td width="36%"><html:text property="fname" size="25"
style="font-size:20px;height:20px" maxlength="25"
onkeyup="suggest()" onkeydown="enterEvent();"/>
<div id="suggest" style="position:absolute;top:0;left:0;">
<table align="left" style="font-size: 20px;height: 20px"
bordercolor="#FFFFFF">
<tbody id="content" style="font-size: 20px;height: 16px"></tbody>
</table>
</div>
</td>
<td width="9%" align="left"><img src="images/eshop/search.gif"
width="40" height="30" style="cursor: hand"
onClick="javascript:pageControl('First');todo('to_search')"></td>
<td width="26%"
style="color: white;font-size:20px;font-weight: bold"><html:link
href="#" onclick="advanced_search();">进入高级搜索</html:link></td>
</tr>
</table>
分享到:
相关推荐
当找到类似的输入时会自动弹出相关的下拉列表 可与数据库交互,从数据库获取搜索的内容 这个需自行更该,本人已实现这个功能
(jsp+ajax)实现了类似google的搜索引擎包括了智能感应(比如人在文本框上输入a的话,它就把a开头的所有标题显示出来让你选)、功能很强大...
类似于google百度的搜索引擎 支持这种数据库
人们已经习惯于通过google、百度、Yahoo等知名搜索引擎在国际互联网...这几部分有机结合,从而为您建立一个类似Google风格的Internet全文搜索引擎! 最佳适用范围:校园网、园区网、其它局域网,也可应用于Internet。
了解google类似的搜索引擎是怎么实现的;攫取搜索真相。 原理描述请见:http://gaolizhong666.blog.163.com/blog/static/11561504220136242819683/
类似于百度,谷歌的搜索引擎仿真软件,类含有详细的技术资料,物有所值!
我期望以后搜索引擎能够更智能化,有类似人类的语义分析能力,能够不通过外链的投票也能分辨出网站的好坏,真正的完全变成“内容为王”,只不过或许还要很久吧。
SOPI垂直搜索引擎2.0是一个从信息采集到分析到索引的整套解决方案,让你也可以轻松拥有一个多功能垂直搜索引擎。可以针用于行业垂直信息进行搜索,网站搜索等各类应用。 SOPI垂直搜索引擎系统的应用特点 外网搜索...
2008年5月份,因学习《信息检索》课程,本人利用java的开源搜索引擎库lucene,以及结合ajax技术google-suggest功能,模仿baidu、google的基本风格做了个“Baioogle-SearchEngine(百歌搜索引擎)”程序。 (源代码见...
一个Internet全文搜索引擎,由前台----面向用户的Web搜索界面、后台---...这三部分有机结合,从而为您建立一个类似Google风格的Internet全文搜索引擎!最佳适用范围:校园网、园区网、其它局域网,也可应用于Internet。
用AJAX实现类似GOOGLE搜索框的功能
:magnifying_glass_tilted_left:Ambar:...使用单个docker-compose文件轻松部署Ambar在您的文档和图像内容中执行类似于Google的搜索标记文档使用简单的REST API将Ambar集成到您的工作流中功能搜索教程:掌握Ambar搜索
电报(内联)机器人,为各种搜索引擎(ddg,google,bing,...)提供直接搜索链接(类似于LMGTFY) 安装/设置 我看不到这一点,但是,嘿,这是步骤: 让自己成为具有HTTPS支持PHP托管人(uberspace.de是一个不错的...
Yandex搜索引擎是俄罗斯最大的搜索引擎之一,也是世界上排名靠前的搜索引擎之一,类似于谷歌在西方国家的地位。 除了搜索引擎服务,Yandex还提供了许多其他互联网服务,包括在线地图、电子邮件、云存储、音乐流媒体...
比如从不同IP地址做搜索以后,点击自己的网站,然后再也不回搜索引擎了。而这一切都是可以用软件自动实现的。所以用户行为模式和其他现有的排名算法因素,肯定都会被组合在一起,从而达到一个良好的平衡。 <br> ...
搜索引擎 创建一个类似于 Google 的搜索引擎来抓取网络并显示结果排名列表
Python浏览器一个带有默认搜索引擎Google的基于简单Python(PyQt5)的浏览器
实现了类似google的搜索提示效果。
介绍SearchDeck 是一种搜索引擎,可以在一个地方为用户提供来自所有主要搜索引擎的结果,以便您可以找到最佳结果。 它包括字典卡片(如谷歌)以及即时答案。总结在一个地方搜索所有主要搜索引擎! 本项目有隐私政策...
6.sp值网站权重排名,此排名类似于google的PR值,只是算法不同! 7.违法关键字过滤功能 8.网站无限级分类 9.违法作弊网站一键删除 10.网站登录入口,可在后台设置自动收录,或者人工审核收录! 11.搜索关键字批量删除功能 ...