📄 39.html
字号:
<br>
SearchEngines.java <br>
<br>
注意:这个Servlet要用到后面给出的SearchSpec类,SearchSpec的功能是构造适合不同搜索引擎的URL。 <br>
package hall;<br>
<br>
import java.io.*;<br>
import javax.servlet.*;<br>
import javax.servlet.http.*;<br>
import java.net.*;<br>
<br>
public class SearchEngines extends HttpServlet {<br>
public void doGet(HttpServletRequest request,<br>
HttpServletResponse response)<br>
throws ServletException, IOException {<br>
// getParameter自动解码URL编码的查询字符串。由于我们<br>
// 要把查询字符串发送给另一个服务器,因此再次使用<br>
// URLEncoder进行URL编码<br>
String searchString =<br>
URLEncoder.encode(request.getParameter("searchString"));<br>
String numResults =<br>
request.getParameter("numResults");<br>
String searchEngine =<br>
request.getParameter("searchEngine");<br>
SearchSpec[] commonSpecs = SearchSpec.getCommonSpecs();<br>
for(int i=0; i<commonSpecs.length; i++) {<br>
SearchSpec searchSpec = commonSpecs[i];<br>
if (searchSpec.getName().equals(searchEngine)) {<br>
String url =<br>
response.encodeURL(searchSpec.makeURL(searchString,<br>
numResults));<br>
response.sendRedirect(url);<br>
return;<br>
}<br>
}<br>
response.sendError(response.SC_NOT_FOUND,<br>
"No recognized search engine specified.");<br>
}<br>
<br>
public void doPost(HttpServletRequest request,<br>
HttpServletResponse response)<br>
throws ServletException, IOException {<br>
doGet(request, response);<br>
}<br>
}<br>
<br>
<br>
<br>
<br>
SearchSpec.java <br>
package hall;<br>
<br>
class SearchSpec {<br>
private String name, baseURL, numResultsSuffix;<br>
<br>
private static SearchSpec[] commonSpecs =<br>
{ new SearchSpec("google",<br>
"http://www.google.com/search?q=",<br>
"&num="),<br>
new SearchSpec("infoseek",<br>
"http://infoseek.go.com/Titles?qt=",<br>
"&nh="),<br>
new SearchSpec("lycos",<br>
"http://lycospro.lycos.com/cgi-bin/pursuit?query=",<br>
"&maxhits="),<br>
new SearchSpec("hotbot",<br>
"http://www.hotbot.com/?MT=",<br>
"&DC=")<br>
};<br>
<br>
public SearchSpec(String name,<br>
String baseURL,<br>
String numResultsSuffix) {<br>
this.name = name;<br>
this.baseURL = baseURL;<br>
this.numResultsSuffix = numResultsSuffix;<br>
}<br>
<br>
public String makeURL(String searchString, String numResults) {<br>
return(baseURL + searchString + numResultsSuffix + numResults);<br>
}<br>
<br>
public String getName() {<br>
return(name);<br>
}<br>
<br>
public static SearchSpec[] getCommonSpecs() {<br>
return(commonSpecs);<br>
}<br>
}<br>
<br>
<br>
<br>
<br>
SearchEngines.html <br>
<br>
下面是调用上述Servlet的HTML表单。 <br>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><br>
<HTML><br>
<HEAD><br>
<TITLE>访问多个搜索引擎</TITLE><br>
</HEAD><br>
<br>
<BODY BGCOLOR="#FDF5E6"><br>
<br>
<FORM ACTION="/servlet/hall.SearchEngines"><br>
<CENTER><br>
搜索关键字: <br>
<INPUT TYPE="TEXT" NAME="searchString"><BR><br>
每页显示几个查询结果:<br>
<INPUT TYPE="TEXT" NAME="numResults" <br>
VALUE=10 SIZE=3><BR><br>
<INPUT TYPE="RADIO" NAME="searchEngine"<br>
VALUE="google"><br>
Google |<br>
<INPUT TYPE="RADIO" NAME="searchEngine"<br>
VALUE="infoseek"><br>
Infoseek |<br>
<INPUT TYPE="RADIO" NAME="searchEngine"<br>
VALUE="lycos"><br>
Lycos |<br>
<INPUT TYPE="RADIO" NAME="searchEngine"<br>
VALUE="hotbot"><br>
HotBot<br>
<BR><br>
<INPUT TYPE="SUBMIT" VALUE="Search"><br>
</CENTER><br>
</FORM><br>
<br>
</BODY><br>
</HTML> <br>
<br>
</td>
</tr>
<tr><td colspan=2 align=right class=t> <a href="http://www.chinajavaworld.com/doc/servlet-jsp/32.html" ></a> <a href="38.html" tppabs="http://www.chinajavaworld.com/doc/servlet-jsp/38.html" ></a> <a href="40.html" tppabs="http://www.chinajavaworld.com/doc/servlet-jsp/40.html" ></a> </td></tr>
</td>
</tr>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -