⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 39.html

📁 写给JSP初级程序员的书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<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>
&nbsp;&nbsp;public void doGet(HttpServletRequest request,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse response)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br>
&nbsp;&nbsp;&nbsp;&nbsp;// getParameter自动解码URL编码的查询字符串。由于我们<br>
&nbsp;&nbsp;&nbsp;&nbsp;// 要把查询字符串发送给另一个服务器,因此再次使用<br>
&nbsp;&nbsp;&nbsp;&nbsp;// URLEncoder进行URL编码<br>
&nbsp;&nbsp;&nbsp;&nbsp;String searchString =<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URLEncoder.encode(request.getParameter(&quot;searchString&quot;));<br>
&nbsp;&nbsp;&nbsp;&nbsp;String numResults =<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.getParameter(&quot;numResults&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;String searchEngine =<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.getParameter(&quot;searchEngine&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;SearchSpec[] commonSpecs = SearchSpec.getCommonSpecs();<br>
&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0; i<commonSpecs.length; i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchSpec searchSpec = commonSpecs[i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (searchSpec.getName().equals(searchEngine)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String url =<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.encodeURL(searchSpec.makeURL(searchString,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numResults));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.sendRedirect(url);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;response.sendError(response.SC_NOT_FOUND,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;No recognized search engine specified.&quot;);<br>
&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;public void doPost(HttpServletRequest request,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse response)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br>
&nbsp;&nbsp;&nbsp;&nbsp;doGet(request, response);<br>
&nbsp;&nbsp;}<br>
}<br>
<br>
<br>
<br>
<br>
   SearchSpec.java <br>
package hall;<br>
<br>
class SearchSpec {<br>
&nbsp;&nbsp;private String name, baseURL, numResultsSuffix;<br>
<br>
&nbsp;&nbsp;private static SearchSpec[] commonSpecs =<br>
&nbsp;&nbsp;&nbsp;&nbsp;{ new SearchSpec(&quot;google&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://www.google.com/search?q=&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;num=&quot;),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new SearchSpec(&quot;infoseek&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://infoseek.go.com/Titles?qt=&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;nh=&quot;),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new SearchSpec(&quot;lycos&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://lycospro.lycos.com/cgi-bin/pursuit?query=&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;maxhits=&quot;),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new SearchSpec(&quot;hotbot&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://www.hotbot.com/?MT=&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;DC=&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;};<br>
<br>
&nbsp;&nbsp;public SearchSpec(String name,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String baseURL,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String numResultsSuffix) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;this.name = name;<br>
&nbsp;&nbsp;&nbsp;&nbsp;this.baseURL = baseURL;<br>
&nbsp;&nbsp;&nbsp;&nbsp;this.numResultsSuffix = numResultsSuffix;<br>
&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;public String makeURL(String searchString, String numResults) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;return(baseURL + searchString + numResultsSuffix + numResults);<br>
&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;public String getName() {<br>
&nbsp;&nbsp;&nbsp;&nbsp;return(name);<br>
&nbsp;&nbsp;}<br>
<br>
&nbsp;&nbsp;public static SearchSpec[] getCommonSpecs() {<br>
&nbsp;&nbsp;&nbsp;&nbsp;return(commonSpecs);<br>
&nbsp;&nbsp;}<br>
}<br>
<br>
<br>
<br>
<br>
   SearchEngines.html <br>
<br>
   下面是调用上述Servlet的HTML表单。 <br>
<!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;><br>
<HTML><br>
<HEAD><br>
&nbsp;&nbsp;<TITLE>访问多个搜索引擎</TITLE><br>
</HEAD><br>
<br>
<BODY BGCOLOR=&quot;#FDF5E6&quot;><br>
<br>
<FORM ACTION=&quot;/servlet/hall.SearchEngines&quot;><br>
&nbsp;&nbsp;<CENTER><br>
&nbsp;&nbsp;&nbsp;&nbsp;搜索关键字: <br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;TEXT&quot; NAME=&quot;searchString&quot;><BR><br>
&nbsp;&nbsp;&nbsp;&nbsp;每页显示几个查询结果:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;TEXT&quot; NAME=&quot;numResults&quot; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE=10 SIZE=3><BR><br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE=&quot;google&quot;><br>
&nbsp;&nbsp;&nbsp;&nbsp;Google |<br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE=&quot;infoseek&quot;><br>
&nbsp;&nbsp;&nbsp;&nbsp;Infoseek |<br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE=&quot;lycos&quot;><br>
&nbsp;&nbsp;&nbsp;&nbsp;Lycos |<br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE=&quot;hotbot&quot;><br>
&nbsp;&nbsp;&nbsp;&nbsp;HotBot<br>
&nbsp;&nbsp;&nbsp;&nbsp;<BR><br>
&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=&quot;SUBMIT&quot; VALUE=&quot;Search&quot;><br>
&nbsp;&nbsp;</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 + -