使用 GSA 的完整代码 - Servlete 和 Jquery - Java
您可以使用 servlet GSAProxyServlet.java 使用 AxisHttp 创建代理。
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
Object responseText = null;
PrintWriter out = response.getWriter();
try {
responseText = generateResponce(request, response);
response.setContentType("text/json");
response.setHeader("Cache-Control", "no-cache");
out.print(responseText);
} catch (Exception e) {
System.out.println(e);
} finally {
out.close();
}
}
private String generateResponce(HttpServletRequest request, HttpServletResponse response) {
String responseStr = null;
try {
String q = (String) request.getParameter("q");
String ulrStr = getSuggestUrl(q);
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(ulrStr);
getRequest.addHeader("accept", "application/json");
HttpResponse response1 = httpClient.execute(getRequest);
if (response1.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response1.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((response1.getEntity().getContent())));
System.out.println("Output from Server .... \n");
String tmp = null;
while ((tmp = br.readLine()) != null) {
System.out.println(tmp);
responseStr = tmp;
}
httpClient.getConnectionManager().shutdown();
System.out.println("Output# " + responseStr);
} catch (Exception e) {
System.out.println(e);
}
return responseStr;
}
private String getSuggestUrl(String query) {
String url = "http://GSA-URL/suggest?";
String site = "max=10&site=all&client=my_frontend&format=rich";
return url + site + "&q=" + query;
}
** * ** * ** * ** * **** JSP Jquery 代码* ** * ** * ** * ** * ** * ** * ****
$("#q").autocomplete({
source : function(request, response) {
$.ajax({
url : "GSAProxyServlet",
dataType : "json",
data : {
q : request.term
},
success : function(data) {
response( $.map( data.results, function( item ) {
return {
label: item.name ,
value: item.name
}
}));
},
failure : function(data) {
alert("error");
},
parse: function() {
alert("parse");
},
});
},