//search.html //通过这个文件+另两个java文件可以实现实现搜索引擎的前端!(可实现搜索).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- 这个+另一个servlet 可实现搜索引擎 -->
<HTML>
<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应用至关重要。
"Servlet+Ajax实现搜索框智能提示"的案例就是针对这一需求的一个解决方案,它模仿了百度搜索引擎的实时搜索建议功能。在这个系统中,用户在输入框中输入关键词时,后台服务器会通过Servlet处理请求,动态地返回与...
本篇文章将深入探讨如何在B/S(浏览器/服务器)架构下利用Lucene实现一个简单的搜索引擎实例。 首先,我们需要了解Lucene的核心概念。Lucene提供了一套完整的文本检索框架,包括索引构建、查询解析、评分以及结果...
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. **...
在实际应用中,DWR可以用于实时更新用户界面、实现AJAX功能,比如无刷新搜索、动态表格填充等。通过这个简单的DWR demo,你可以学习到如何设置DWR环境,编写可被JavaScript调用的Java方法,以及在客户端进行调用的...
在IT行业中,自动补全(Autocomplete)是一种常见的功能,广泛应用于搜索引擎、文本编辑器、编程IDE等场景,极大地提高了用户输入效率。本示例主要关注如何在JSP(JavaServer Pages)环境中实现一个基本的...
自动补全功能在现代Web应用中非常常见,例如搜索引擎、输入框建议等。它能够根据用户在输入框中输入的内容,实时显示可能的匹配项,极大地提高了用户体验。DWR通过异步调用后端服务,能够在用户输入时快速获取并显示...
JSP文件会被Web服务器转换成Servlet,然后由Servlet引擎执行,生成HTML响应返回给客户端。 在"bookStore"这个项目中,我们可以预期包含以下组件: 1. **前端页面**:这些通常以.jsp结尾的文件,包含了用户界面的...
6. SEO优化:MyBlog可能已经考虑到了搜索引擎优化,通过元标签、URL结构等方式提高博客在搜索引擎中的可见性。 在技术栈方面,MyBlog可能使用了以下组件: 1. Servlet:JSP的基础是Servlet,MyBlog可能会使用...
1. 部分数据更新不利于搜索引擎优化(SEO)。 2. 需要处理浏览器兼容性问题。 3. 可能导致用户界面在请求期间看起来卡顿。 ### 五、总结 Ajax技术在现代Web应用中起着至关重要的作用,它通过异步通信方式提升了...
然而,随着HTML5的普及,frameset已经不再推荐使用,因为它存在一些问题,比如不便于SEO(搜索引擎优化)、对移动设备支持不佳以及可能导致跨帧安全问题。现代网页设计更倾向于使用CSS布局(如Flexbox或Grid)和单页...
3. **新闻检索**:用户可以通过搜索框输入关键词,系统利用JSP和Java的搜索引擎技术(如Lucene)对新闻标题和内容进行全文搜索,返回相关的新闻结果。 4. **权限管理**:为了确保只有授权用户可以发布和修改新闻,...
这通常涉及SQL查询或使用类似Lucene的全文搜索引擎。 至于项目中的`WebRoot`和`src`目录,它们分别代表了Web应用的根目录和源代码目录。`WebRoot`通常包含HTML、CSS、JavaScript以及静态资源文件,而`src`目录则...
这个系统不仅是一个学习和实践Spring Boot技术的好例子,也是开发音乐类应用的一个基础模板。 1. **Spring Boot核心特性** - 自动配置:Spring Boot通过`@EnableAutoConfiguration`注解自动配置了许多Spring组件,...
1. 不利于搜索引擎优化(SEO),因为大部分爬虫无法执行JavaScript。 2. 页面局部刷新可能导致浏览器历史管理问题。 3. 安全性需要额外考虑,防止XSS和CSRF攻击。 总之,Ajax和DWR在现代Web开发中起着关键作用,...
在实际开发过程中,开发者还需要考虑如何处理并发编辑冲突、如何设计友好的用户界面以及如何优化搜索引擎的索引和排名。同时,为了保证数据的安全性,加密技术、SQL注入防护和XSS攻击防范也是必不可少的环节。 总之...