📄 searchengines.java
字号:
/*这个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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -