老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網站建設、域名注冊、服務器等服務

Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能

小編給大家分享一下Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司成都網站建設定制設計,是成都網站營銷推廣公司,為鑿毛機提供網站建設服務,有成熟的網站定制合作流程,提供網站定制設計服務:原型圖制作、網站創(chuàng)意設計、前端HTML5制作、后臺程序開發(fā)等。成都網站改版熱線:18982081108

利用無刷新技術智能變換搜索框的提示,同百度搜索

效果圖

Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能

其基本原理:

1.給搜索框編寫js綁定事件onkeyup(鍵盤輸入時)、onfocus(當鼠標點擊搜索框外的時候清空提示)

2.首先獲得用戶輸入、之后將獲得的數(shù)據(jù)傳給服務器,服務器將數(shù)據(jù)傳給后臺,后臺獲取服務器傳來的數(shù)據(jù)進行處理,得到關聯(lián)數(shù)據(jù),向前端返回json格式,前端通過回調函數(shù),將返回來的json解析成文本,將文本傳輸?shù)剿阉骺蛳路降恼故敬?/p>

如下為支持json的jar包

Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能

search.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>



ajax搜索

//獲得更多關聯(lián)信息的函數(shù)
function getMore(){
 var xmlHttp;
 //首先獲得用戶的輸入
 var content = document.getElementById("keyword");
 if(content.value==""){
  keywordBlur();//執(zhí)行一下清空方法,使搜索框在無數(shù)據(jù)的時候,下方殘留數(shù)據(jù)也動態(tài)清空
  return;
 }
 //alert(content.value);
 //要給服務器發(fā)送用戶輸入的內容,要創(chuàng)建對象,叫XmlHttp對象
 //xmlHttp=獲得XmlHttp對象
 xmlHttp=CreatXMLHttp();
 //alert(xmlHttp);
 //要給服務器發(fā)送數(shù)據(jù)
 var url="serch?keyword="+escape(content.value);
 //如果不用escape這個函數(shù)轉化一下的話,傳中文會有問題
 //true表示javascript的腳本會在send()方法之后繼續(xù)執(zhí)行,而不會等待來自服務器的相應
 xmlHttp.open("GET",url,true);
 //xmlHttp綁定一個回調方法去接受服務器傳來的相應,會在xmlHttp狀態(tài)改變的時候被調用
 //xmlHttp有0~4的狀態(tài),只關心4的方法
 //4為complete狀態(tài),表示交互完成,當交互完成時才會調用回調方法
 xmlHttp.onreadystatechange=callback;
 xmlHttp.send(null);//send里面發(fā)送的是內容體,但參數(shù)在URL里已經都寫完了
 //回調函數(shù)==!!注意 這里回調方法要在方法內創(chuàng)建,因為創(chuàng)建的xmlHttp對象不是全局變量
 //是在getMore()方法里創(chuàng)建的,可以將變量提取出來,變成全局變量
 function callback(){
  if (xmlHttp.readyState==4){
   //200代表服務器相應成功。。。404代表資源未找到。。500服務器內部錯誤
   if(xmlHttp.status==200){
    //交互成功,獲得相應的數(shù)據(jù),是文本格式
    var result=xmlHttp.responseText;
    //解析json格式
    var json=eval("("+result+")");//要在兩邊加個小括號,js才能認識
    //獲得數(shù)據(jù)之后就可以開始展示了。在輸入框的下邊展示
    setContent(json);
   }
  }
 }
 //設置關聯(lián)數(shù)據(jù)展示,參數(shù)代表的是服務器傳遞過來的關聯(lián)數(shù)據(jù)
 function setContent(contents){
  //setLocation();//設置跟輸入框一樣寬度
  keywordBlur();//在每次得到值之前先清空一下之前的殘留數(shù)據(jù)
  var size=contents.length;//根據(jù)關聯(lián)的數(shù)據(jù)長度,來生成多少
  //設置內容
  for(var i=0;i=0;i--){ 
   contentTableBody.removeChild(contentTableBody.childNodes[i]); 
  } 
  document.getElementById("popDiv").style.border="none"; 
}


/* #mydiv{
 position: absolute;
 left:30%;
 top:50%;
 margin-left: 100px;
} */
.mouseOver{
 background: #708090;
 color: #FFFAFA;
}
.mouseOut{
 background: #FFFAFA;
 color: #000000;
}



 
  
  
  
  
  
   
    
    
     
    
   
  
 

SearchServlet.class

package com.ninka;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
public class SearchServlet extends HttpServlet{
 static List datas = new ArrayList();
 static{
  datas.add("ajax1");
  datas.add("ajax2");
  datas.add("ajax3");
  datas.add("bichi1");
  datas.add("bichi2");
  datas.add("php"); 
  datas.add("javascript"); 
  datas.add("java"); 
  datas.add("html"); 
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException {
  //設置下編碼格式
  request.setCharacterEncoding("UTF-8");
  response.setCharacterEncoding("UTF-8");
  System.out.println("123");
  //首先獲得客戶端傳來的數(shù)據(jù),,注意傳過來的參數(shù)關鍵字一定要寫對,否則會空指針異常
  String keyword = request.getParameter("keyword");
  //獲得關鍵字之后進行處理,得到關聯(lián)數(shù)據(jù)
  List listData = getData(keyword);
  //返回json格式
  System.out.println(JSONArray.fromObject(listData));
  //JSONArray.fromObject(listData);
  response.getWriter().write(JSONArray.fromObject(listData).toString());
 }
 //獲得關聯(lián)數(shù)據(jù)方法
 public List getData(String keyword){
  List list = new ArrayList();
  for(String data:datas){
   //如果傳遞過來的數(shù)據(jù),屬于詞庫里面的話,那么就把包含關鍵詞的數(shù)據(jù)打包成list,向客戶端傳
   if(data.contains(keyword)){
    list.add(data);
   }
  }
  return list;
 }
}

web.xml



 ajaxtest
 
  search.jsp
 
 
 
  search
  com.ninka.SearchServlet
 
 
  search
  /
 

以上是“Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網頁標題:Servlet+Ajax如何實現(xiàn)智能搜索框智能提示功能
標題路徑:http://www.xueling.net.cn/article/jcgehg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产精品久久久久久久久久黑人 | 黑人巨大欧美一区二区视频 | 天天操好逼 | 99精品视频在线观看免费 | 亚洲日韩精品欧美一区二区 | 亚洲国产另类久久精品 | 在线网站 | 国产日产欧产精品精品郁金香 | 香蕉高清永久在线视频 | 一本大道久久东京热无码av | 日本黄色小视频 | 高清国产福利在线观看 | av视频在线播放 | 亚洲777理论| 国内精拍拍在线视频免费看 | 蜜臀AV色欲A片无码精品一区 | 欧美精品毛片 | 国产午夜鲁丝片AV无码 | 91l九色lporny | 欧洲最大免费看影视网站 | 亚洲小说图区综合在线 | 哪里有免费的黄色网址 | 狠狠一区二区三区 | 免费爱爱视频网址 | 日韩在线一区视频 | 91国产在线视频在线观看 | 国产精品麻豆视频国产馆 | 蜜臀AV无码一区二区三区 | 韩国av在线免费观看 | 青青草免费在线观看视频 | 日本韩国黄色一区二区三区 | 在线a网| 亚洲91精品| 麻豆传播媒体免费版官网 | 中文字幕亚洲码在线观看 | 国产精品美脚玉足脚交 | 日韩免费av乱码高清专区 | 欧美一区综合 | 日韩欧美a级v片免费播放 | 亚洲欧洲毛片 | 国产精品99久久久久久久久久久久 |