客户端的JavaScript:
<script language="javascript"> var theURL = "/examples/servlet/MyGoogleSearchServlet?search="; var http = getHTTPObject();
function handleHttpResponse() { if (http.readyState == 4) { GoogleSearchResults.innerHTML = http.responseText; } }
function updateGoogleResults(formElement) { var searchQuery = document.forms[0].elements[formElement].value; http.open("GET", theURL + escape(searchQuery), true); http.onreadystatechange = handleHttpResponse; http.send(null); }
function getHTTPObject() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp = false; } }
return xmlhttp; } </script>
__________________________________________________________________________
服务器端的:MyGoogleSearchServlet
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/** * Search Google. * * @author Jose Sandoval */ public class MyGoogleSearchServlet extends HttpServlet { /** * Do get. * * @param request HttpServletRequest * @param response HttpServletResponse * @throws ServletException, IOExeption */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); StringBuffer resultBuffer = new StringBuffer(); ArrayList results = MyGoogleSearch.doSearch(request.getParameter("search")); SearchResultBean resultBean = null; for (int i = 0; i<results.size(); i++) { resultBean = (SearchResultBean) results.get(i); resultBuffer.append("<a href=").append(resultBean.getURL()).append(">").append(resultBean.getTitle()).append("</a>"); resultBuffer.append("<br>"); resultBuffer.append(resultBean.getSnippet()); resultBuffer.append("<br>").append("<br>"); } response.setContentType("text/html"); response.setHeader("Pragma", "no-cache"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "no-store"); out.print(resultBuffer.toString()); out.close(); } }
__________________________________________________________________________
服务器端的:MyGoogleSearch
import java.io.IOException; import java.util.ArrayList;
import com.google.soap.search.GoogleSearch; import com.google.soap.search.GoogleSearchFault; import com.google.soap.search.GoogleSearchResult; import com.google.soap.search.GoogleSearchResultElement;
/** * GoogleSearch. * * @author Jose Sandoval */ public class MyGoogleSearch { private static String CLIENT_KEY = "YOU_HAVE_TO_GET_YOUR_OWN_KEY_FROM_GOOGLE";
/** * Search Google. * * @param queryString String * @return ArrayList Contains SimpleSearchResult * @throws IOException */ public static ArrayList doSearch(String queryString) throws IOException { ArrayList searchResults = new ArrayList(); GoogleSearch search = new GoogleSearch(); search.setKey(CLIENT_KEY); try { search.setQueryString(queryString.trim()); GoogleSearchResult results = search.doSearch(); GoogleSearchResultElement[] resultElements = results.getResultElements(); for (int i = 0; i<resultElements.length; i++) { searchResults.add(new SearchResultBean(resultElements[i].getTitle(), resultElements[i].getURL(), resultElements[i].getSnippet())); } } catch (GoogleSearchFault f) { throw new IOException("The call to the Google Web APIs failed: " + f.getMessage()); } catch (Exception e) { throw new IOException("Thread Problem."); } return searchResults; } }
__________________________________________________________________________
返回搜索结果的Bean:SearchResultBean
/** * Result's Bean. * * @author Jose Sandoval */ public class SearchResultBean { private String title; private String URL; private String snippet; public SearchResultBean(String title, String URL, String summary) { super(); this.title = title; this.URL = URL; this.snippet = summary; }
public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getURL() { return URL; } public void setURL(String url) { URL = url; }
public String getSnippet() { return snippet; } public void setSnippet(String summary) { this.snippet = summary; } } 来自:辣妹子社区-Java技术论坛 
|