<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- 这个+另一个servlet 可实现搜索引擎 -->
<HTML>
search.html //通过这个文件+另两个java文件可以实现实现搜索引擎的前端!(可实现搜索).
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<form method = post action="http://127.0.0.1:8080/WebServlet/searchengines">
Search String:
<input type="text" name="searchString"><br>
<input type="text" name="numResults" value=10 size=3><br> <!--搜索到的,每页显示多少记录-->
<input type ="radio" name="searchEngine" value="google"> Google|
<input type ="radio" name="searchEngine" value="infoseek"> Infoseek|
<input type ="radio" name="searchEngine" value="hotbot"> HotBot
<br>
<input type = "submit" value="Search">
</form>
</BODY>
</HTML>
____________________________________________________________________
SearchEnginesServlet.java //搜索引擎例子
import java.io.*;
import java.util.zip.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
public class SearchEnginesServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, java.io.IOException {
String searchString = request.getParameter("searchString");
if(searchString == null||searchString.length()==0){
reportProblem(response,"Missing search string."); //reportProblem()是一个自己定义的方法
//返回错误信息。
return;
}
searchString =URLEncoder.encode(searchString); //将seachStirng中的特殊字符转化成地址栏中字符,
//如空格转化成+号.
String numResults = request.getParameter("numResults");
if(numResults == null || numResults.equals("0")||numResults.length()==0)
{
numResults="10" ; //如果没有传递这个分页参数,就默认(搜索到的记录)第页为10个记录;
}
String searchEngine =request.getParameter("searchEngine");
if(searchEngine==null)
{
reportProblem(response,"Missing search engine!");
}
//自己定义的类,SearchSpe完成构建完成的URL搜过路径!,让我们能搜索到信息。
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;
}
}//for
reportProblem(response,"Unrecognized search engine.");
}
private void reportProblem(HttpServletResponse response,String message)
throws IOException { //自己定义的返回出错信息
response.sendError(response.SC_NOT_FOUND,"<H2> Error:"+message+"</H2>");
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, java.io.IOException {
doGet(request,response);
}
}
_________________________________________________________________________
SearchSpec.java //搜索引擎例子构建URL
/*
这个类能实现,构建完整的搜索路径的URL。在状态代码的视频中。
*/
public class SearchSpec
{
private String name,baseURL,numResultsSuffix;
private static SearchSpec[] commonSpecs =
{ //q后面跟要搜索的东西!,num后,跟页数
new SearchSpec("google", "http://www.google.com/search?q=",
"&num="),
new SearchSpec("infoseek", "http://infoseek.go.com/Titles?qt=",
"&nh="),
new SearchSpec("lycos", "http://lycospro.lycos.com/cgi-bin/"+
"pursuit?query=","&nmaxhits="),
new SearchSpec("hotbot", "http://www.hotbot.com/?MT=",
"&DC=")
};
public SearchSpec(String name,String baseURL,String numResultsSuffix)
{
this.name =name;
this.baseURL = baseURL;
this.numResultsSuffix = numResultsSuffix;
}
public String makeURL(String searchString,String numResults)
{
return (baseURL+searchString+numResultsSuffix+numResults);
}
public String getName() {
return name;
}
public static SearchSpec[] getCommonSpecs() {
return commonSpecs;
}
}
分享到:
相关推荐
在现代Web应用中,用户界面的交互性和实时性变得至...这个例子中的搜索框智能提示功能,不仅展示了Ajax的实时性,也突显了Servlet在后端处理中的作用。理解并掌握这些技术,对于开发高效、用户友好的Web应用至关重要。
在IT行业中,Lucene是一个非常重要的开源全文搜索引擎库,由Apache软件基金会开发并维护。本篇文章将深入探讨如何在B/S(浏览器/服务器)架构下利用Lucene实现一个简单的搜索引擎实例。 首先,我们需要了解Lucene的...
"Servlet+Ajax实现搜索框智能提示"的案例就是针对这一需求的一个解决方案,它模仿了百度搜索引擎的实时搜索建议功能。在这个系统中,用户在输入框中输入关键词时,后台服务器会通过Servlet处理请求,动态地返回与...
在搜索引擎中,Servlet可以用来处理用户的搜索查询请求,调用索引模块检索相关文档,然后将结果呈现给用户。 在本文中,还提到了Lucene技术。Apache Lucene是一个高性能的、可伸缩的、纯Java搜索引擎库,它可以被...
7.1.3 搜索引擎 7.1.4 电子商务 7.1.6 后台管理系统 7.2 留言板 7.2.1 功能分析 7.2.2 功能实现和技术要点 7.2.3 代码和分析 7.3 进一步完善的留言板 7.3.1 功能分析 7.3.2 功能实现和技术要点 7.3.3 代码...
Solr是中国最流行的开源全文搜索引擎之一,它基于Java并运行在Tomcat等Servlet容器之上。标题提到的是关于使用Tomcat启动最新版本的Solr 7.3.1,这是一个非常实用的技术场景,因为Tomcat是Apache的一个流行且轻量级...
6.4 各种搜索引擎的一个前端 第7章 服务器响应的生成:htip响应报头 7.1 在servlet中设置响应报头 7.2 理解http1.1响应报头 7.3 构建excel电子表格 7.4 servlet状态的持续以及页面的自动重载 7.5 使用...
【jsp源码实例4(搜索引擎)】是一个基于Java Servlet技术的简单搜索引擎应用示例,它展示了如何接收用户输入的查询参数,并将这些参数传递给不同的搜索引擎API进行搜索。以下是该实例涉及的关键知识点: 1. **...
**Lucene搜索引擎简介** Lucene是Apache软件基金会的开源全文搜索引擎库,它为开发者提供了在各种应用程序中实现全文检索功能的工具集。Lucene的核心功能包括文本分析、索引创建、查询解析和结果排序。本示例将展示...
在Web开发中,伪静态是一种优化技术,它通过将动态页面的URL转换为静态页面的外观,从而提高用户体验和搜索引擎优化(SEO)。这种技术通常用于那些实际上由服务器动态生成但希望表现出静态网页特征的网站。在本文中...
然而,Struts2默认的URL格式往往包含了很多不必要的参数,不利于搜索引擎抓取和用户记忆。这就是UrlRewrite发挥作用的地方,它可以将诸如`/struts.action?method=doSomething&id=123`这样的URL转换为更友好的形式,...
同时,Solr具备可配置性、可扩展性,它可以独立运行在Jetty、Tomcat等Servlet容器中,为开发者提供了一个成熟的搜索引擎解决方案。 在企业站内搜索技术选型时,大型门户网站和电子商务网站等对搜索速度、结果相关性...
Solr 的目标是打造一款企业级的搜索引擎系统,它是基于 Lucene 一个搜索引擎服务,可以独立运行,通过 Solr 可以非常快速的构建企业的搜索引擎,通过 Solr 也可以高效的完成站内搜索功能。 Solr 安装配置: 1. ...
7. **SEO优化**:页面静态化对于搜索引擎优化(SEO)非常有利,因为搜索引擎更容易抓取静态HTML页面,提高网站的可见性。 在实际应用中,页面静态化还可以结合CDN(内容分发网络)进一步提升性能,通过缓存静态HTML...
在Web开发中,URL重写(URLRewrite)是一种优化技术,主要用于改善网站的用户体验和SEO(搜索引擎优化)。本篇文章将深入探讨如何在JSP环境中使用URLRewrite工具来实现URL的伪静态化,以及其背后的原理和优势。 ...
Java静态网页技术主要涉及到将动态网页内容转换成静态HTML页面,以便提高网站的访问速度和搜索引擎优化(SEO)。动态网页通常由服务器上的程序在请求时生成,而静态HTML页面是预先生成并存储在服务器上,用户请求时...
在IT行业中,自动补全(Autocomplete)是一种常见的功能,广泛应用于搜索引擎、文本编辑器、编程IDE等场景,极大地提高了用户输入效率。本示例主要关注如何在JSP(JavaServer Pages)环境中实现一个基本的...
XHTML布局的核心在于对元素的精确控制,它强调语义化标签的使用,这有助于搜索引擎优化和无障碍访问。例如,`<div>`用于分组元素,`<header>`定义页面头部,`<nav>`表示导航链接,`<section>`定义文档中的独立部分,...
在Web开发中,URL重写是一个常见的需求,它可以帮助我们优化网站的URL结构,提高用户体验,同时也有利于搜索引擎优化(SEO)。URLRewriteFilter是Apache开源组织Tuckey提供的一个过滤器,它可以方便地实现URL重写...