import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
public class searchengines extends httpservlet {
public void doget(httpservletrequest request,
httpservletresponse response)
throws servletexception, ioexception {
string searchstring = request.getparameter(searchstring);
if ((searchstring == null)
(searchstring.length() == 0)) {
reportproblem(response, missing search string.);
return;
}
// the urlencoder changes spaces to + signs and other
// non-alphanumeric characters to %xy, where xy is the
// hex value of the ascii (or iso latin-1) character.
// browsers always url-encode form values, so the
// getparameter method decodes automatically. but since
// were just passing this on to another server, we need to
// re-encode it.
searchstring = urlencoder.encode(searchstring);
string numresults = request.getparameter(numresults);
if ((numresults == null)
(numresults.equals(0))
(numresults.length() == 0)) {
numresults = 10;
}
string searchengine =
request.getparameter(searchengine);
if (searchengine == null) {
reportproblem(response, missing search engine name.);
return;
}
searchspec[] commonspecs = searchspec.getcommonspecs();
for(int i=0; isearchspec searchspec = commonspecs[i];
if (searchspec.getname().equals(searchengine)) {
string url =
searchspec.makeurl(searchstring, numresults);
response.sendredirect(url);
return;
}
}
reportproblem(response, unrecognized search engine.);
}
private void reportproblem(httpservletresponse response,
string message)
throws ioexception {
response.senderror(response.sc_not_found,
+ message + );
}
public void dopost(httpservletrequest request,
httpservletresponse response)
throws servletexception, ioexception {
doget(request, response);
}
}
