searchengines.java

来自「1、 熟悉应用服务器Tomcat的安装和基本配置 2、 掌握以安装Lombo」· Java 代码 · 共 44 行

JAVA
44
字号
/*这个Servlet要用到后面给出的SearchSpec类*/
package search;

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 { 
/*getParameter自动解码URL编码的查询字符串。
由于我们要把查询字符串发送给另一个服务器,因此再次使用URLEncoder进行URL编码 */
String searchString = 
	URLEncoder.encode(request.getParameter("searchString")); 
String numResults = 
	request.getParameter("numResults"); 
String searchEngine = 
	request.getParameter("searchEngine"); 
SearchSpec[] commonSpecs = SearchSpec.getCommonSpecs(); 
for(int i=0; i<commonSpecs.length; i++) 
{ 
	SearchSpec searchSpec = commonSpecs[i]; 
	//如果匹配了用户指定的搜索引擎
	if (searchSpec.getName().equals(searchEngine)) { 
	//
	String url = response.encodeURL(searchSpec.makeURL(searchString,numResults)); 
	//将响应重定位到url
	response.sendRedirect(url); 
	return; 
	} 
} 

//发一个错误重定位,SC_NOT_FOUND是HTTP状态代码,即404 page not found
response.sendError(response.SC_NOT_FOUND, 
"No recognized search engine specified."); 
} 

public void doPost(HttpServletRequest request, 
HttpServletResponse response) 
throws ServletException, IOException { 
doGet(request, response); 
} 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?