Prentice Hall and Sun Microsystems. Personal use only; do not redistribute.
8.6 A Customized Search Engine Interface
193
Listing 8.5 CustomizedSearchEngines.java
package coreservlets;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
/** A variation of the SearchEngine servlet that uses
* cookies to remember users choices. These values
* are then used by the SearchEngineFrontEnd servlet
* to initialize the form based front end.
*/
public class CustomizedSearchEngines 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;
}
Cookie searchStringCookie =
new LongLivedCookie("searchString", searchString);
response.addCookie(searchStringCookie);
// 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";
}
Cookie numResultsCookie =
new LongLivedCookie("numResults", numResults);
response.addCookie(numResultsCookie);
String searchEngine = request.getParameter("searchEngine");
if (searchEngine == null) {
reportProblem(response, "Missing search engine name.");
return;
}
Second edition of this book: www.coreservlets.com; Sequel: www.moreservlets.com.
Servlet and JSP training courses by book's author: courses.coreservlets.com.
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved