jsp搜索引擎
程序员文章站
2024-03-31 11:47:34
package coreservlets; import java.io.*;...
package coreservlets;
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
// we"re 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; i<commonspecs.length; i++) {
searchspec 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,
"<h2>" + message + "</h2>");
}
public void dopost(httpservletrequest request,
httpservletresponse response)
throws servletexception, ioexception {
doget(request, response);
}
}