客户端的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;
}
}