1. 程式人生 > >Java Web學習筆記 3 深入Servlet技術

Java Web學習筆記 3 深入Servlet技術

public class SearchServlet extends HttpServlet {

     /**
      * The doGet method of the servlet. <br>
      *
      * This method is called when a form has its tag value method equals to get.
      *
      * @param request the request send by the client to the server
      * @param response the response send by the server to the client
      * @throws ServletException if an error occurred
      * @throws IOException if an error occurred
      */
     public void doGet(HttpServletRequest request , HttpServletResponse response )
               throws ServletException, IOException {

           response.setCharacterEncoding( "UTF-8");
           request.setCharacterEncoding( "UTF-8");
          
           // 搜尋關鍵字
          String word = request.getParameter( "word");
           // 搜尋型別
          String type = request.getParameter( "type");
           // 是否允許成人內容。如果選中,則為 "true",否則為 null.
          String allowedAdult = request.getParameter("allowedAdult" );
          
           boolean adultOk = "true" .equals(allowedAdult );

           response.setContentType( "text/html");
          PrintWriter out = response.getWriter();
           out.println( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
           out.println( "<HTML>");
           out.println( "  <HEAD><TITLE>" + word + " 搜尋結果</TITLE></HEAD>" );
           out.println( "<style>");
           out.println( " body, div {font-size:12px; padding:2px; margin:0px; }");
           out.println( " .imgDiv{float:left; width: 172px; height:250px;  margin:2px; padding:2px; border:1px pink solid; overflow:hidden; }");
           out.println( "</style>");
           out.println( "  <BODY>");
          
           out.println( "<div style='float:left; height:40px; '><img src='../images/yahoo.gif'></div>");
           out.println( "<form action='" + request.getRequestURI() + "' method='get'>" );
           out.println( " <div style='height:40px; '>" );
           out.println( "      <input type='radio' name='type' value='web' " + (type.equals("web" )?"checked" :"" ) + ">網頁" );
           out.println( "      <input type='radio' name='type' value='news' " + (type.equals("news" )?"checked" :"" ) + ">新聞" );
           out.println( "      <input type='radio' name='type' value='image' " + (type.equals("image" )?"checked" :"" ) + ">影象" );
           out.println( "      <input type='radio' name='type' value='video' " + (type.equals("video" )?"checked" :"" ) + ">視訊" );
           out.println( "            " );
           out.println( "      <input type='checkbox' name='allowedAdult' value='true' " + (adultOk?"checked" :"" ) + ">允許成人內容 <br/>" );
           out.println( "      <input type='text' name='word' value='" + word + "' style='width:300px; '> <input type='submit' value='用雅虎搜尋' style='width:100px; '>");
           out.println( " </div>");
           out.println( "</form>");
          
        SearchClient client = new SearchClient("javasdktest" );
       
        try{
             if("image" .equals(type )){
               ImageSearchRequest searchRequest = new ImageSearchRequest(URLEncoder.encode( word, "UTF-8"));
                // 是否顯示成人內容
                searchRequest.setAdultOk(adultOk );
                // 查詢記錄數
                searchRequest.setResults(20);
                // 從第 0 條記錄開始顯示
                  searchRequest .setStart(BigInteger.valueOf (0));
               
                double startTime = System.currentTimeMillis();
               ImageSearchResults results = client.imageSearch(searchRequest );
                double endTime = System.currentTimeMillis();

                out.println( "<div align=right style='width:100%; background: #FFDDDD; height:25px; padding:2px; border-top:1px solid #FF9999; margin-bottom:5px; '>");
                out.println( " 總共 " + results.getTotalResultsAvailable() + " 條資料,總用時 " + ( endTime - startTime )/1000 + " 秒。");
                out.println( "</div>");
               
                for(ImageSearchResult result : results.listResults()){
                    out.println( "<div class='imgDiv'>");
                    out.println( " <div align='center'><a href=\"" + result.getClickUrl() + "\" target=_blank><img width=160 height=120 src=\"" + result.getThumbnail().getUrl() + "\" border='0'></a></div>");
                    out.println( " <div align='center'><a href=\"" + result.getRefererUrl() + "\" target=_blank>" + result.getTitle() + "</a></div>" );
                    out.println( " <div align='center'>" + result.getWidth() + "x" + result .getHeight() + " " + result.getFileFormat() + "</div>" );
                    out.println( " <div>" + (result.getSummary()==null ? "" : result.getSummary()) + "</div>");
                    out.println( "</div>");
               }
             }
             else if ("web" .equals(type )){
               WebSearchRequest searchRequest = new WebSearchRequest(URLEncoder.encode(word, "UTF-8"));
                // 是否顯示成人內容
                searchRequest.setAdultOk(adultOk );
                // 查詢記錄數
                searchRequest.setResults(20);
                // 從第 0 條記錄開始顯示
                  searchRequest .setStart(BigInteger.valueOf (0));
               
                double startTime = System.currentTimeMillis();
               WebSearchResults results = client.webSearch(searchRequest );
                double endTime = System.currentTimeMillis();

                out.println( "<div align=right style='width:100%; background: #FFDDDD; height:25px; padding:2px; border-top:1px solid #FF9999; margin-bottom:5px; '>");
                out.println( " 總共 " + results.getTotalResultsAvailable() + " 條資料,總用時 " + ( endTime - startTime )/1000 + " 秒。");
                out.println( "</div>");
                for(WebSearchResult result : results.listResults()){
                    out.println( "<div style='margin:8px; width:500px; '>");
                    out.println( " <div><a href=\"" + result.getClickUrl() + "\" target=_blank><b>" + result.getTitle() + "</b></a> 檔案格式:" + result.getMimeType() + "</div>" );
                    out.println( " <div>網址:<a href=\"" + result.getUrl() + "\" target=_blank>" + result .getUrl() + "</a></div>" );
                    out.println( " <div>" + result.getSummary() + (result .getCache()==null ? "" : " [<a href=\"" + result.getCache().getUrl() + "\" target=_blank>網頁快照</a>]") + "</div>");
                   
                    out.println( "</div>");
               }
             }
             else if ("news" .equals(type )){

               NewsSearchRequest searchRequest = new NewsSearchRequest(URLEncoder.encode( word, "UTF-8"));
                // 是否顯示成人內容
//             searchRequest.setAdultOk(adultOk);
                // 查詢記錄數
                searchRequest.setResults(20);
                // 從第 0 條記錄開始顯示
                  searchRequest .setStart(BigInteger.valueOf (0));
               
                double startTime = System.currentTimeMillis();
               NewsSearchResults results = client.newsSearch(searchRequest );
                double endTime = System.currentTimeMillis();

                out.println( "<div align=right style='width:100%; background: #FFDDDD; height:25px; padding:2px; border-top:1px solid #FF9999; margin-bottom:5px; '>");
                out.println( " 總共 " + results.getTotalResultsAvailable() + " 條資料,總用時 " + ( endTime - startTime )/1000 + " 秒。");
                out.println( "</div>");
                for(NewsSearchResult result : results.listResults()){
                    out.println( "<div style='margin:8px; width:500px; '>");
                    out.println( " <div><a href=\"" + result.getClickUrl() + "\" target=_blank><b>" + result.getTitle() + "</b></a></div>" );
                    out.println( " <div>網址:<a href=\"" + result.getUrl() + "\" target=_blank>" + result .getUrl() + "</a></div>" );
                    out.println( " <div>" + result.getSummary() + "</div>" );
                    out.println( "</div>");
               }
             }
             else if ("video" .equals(type )){
               VideoSearchRequest searchRequest = new VideoSearchRequest(URLEncoder.encode( word, "UTF-8"));
                // 是否顯示成人內容
                searchRequest.setAdultOk(adultOk );
                // 查詢記錄數
                searchRequest.setResults(20);
                // 從第 0 條記錄開始顯示
                  searchRequest .setStart(BigInteger.valueOf (0));
               
                double startTime = System.currentTimeMillis();
               VideoSearchResults results = client.videoSearch(searchRequest );
                double endTime = System.currentTimeMillis();

                out.println( "<div align=right style='width:100%; background: #FFDDDD; height:25px; padding:2px; border-top:1px solid #FF9999; margin-bottom:5px; '>");
                out.println( " 總共 " + results.getTotalResultsAvailable() + " 條資料,總用時 " + ( endTime - startTime )/1000 + " 秒。");
                out.println( "</div>");
               
                for(VideoSearchResult result : results.listResults()){
                    out.println( "<div class='imgDiv'>");
                    out.println( " <div align='center'><a href=\"" + result.getClickUrl() + "\" target=_blank><img width=160 height=120 src=\"" + result.getThumbnail().getUrl() + "\" border='0'></a></div>");
                    out.println( " <div align='center'><a href=\"" + result.getRefererUrl() + "\" target=_blank>" + result.getTitle() + "</a></div>" );
                    out.println( " <div align='center'>" + result.getWidth() + "x" + result.getHeight() + " " + result .getFileFormat() + "</div>");
                    out.println( " <div>" + (result.getSummary()==null ? "" : result.getSummary()) + "</div>");
                    out.println( "</div>");
               }
             }
        } catch(Exception e ){
           e.printStackTrace();
           out.println( "<font color=red>Exception: " + e.getMessage() + "</font>" );
        }
       
           out.println( "  </BODY>");
           out.println( "</HTML>");
           out.flush();
           out.close();
     }
}

相關推薦

Java Web學習筆記 3 深入Servlet技術

public class SearchServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when

Java Web學習筆記-1

根路徑 text .get set 接口 context cat 方法 web應用 1.servlet理論上可以處理多種形式的請求響應形式 ,http只是其中之一 ,所以HttpServletRequest、 HttpServletResponse分別是ServletReq

JAVA Web學習筆記

通過 操作 實體 ive 計算機 mic 內容 類型 entity JAVA Web學習筆記 1、JSP (java服務器頁面) 鎖定 本詞條由“科普中國”百科科學詞條編寫與應用工作項目 審核 。 JSP全名為Java Server Pages,中文名叫java服

java web 學習筆記 - tomcat數據源

取數 nbsp pre connect 獲取 text ner auth 每次 1. 數據庫源  以前的JDBC連接步驟為:   1.加載數據庫驅動 2.通過DriverManger獲取數據庫連接connection 3.通過connection

Java Web 學習筆記 第一章,java語言簡介

com 分布式 ron java瀏覽器 family javadoc 全球 intellij jvm 第一章 java語言簡介 一、什麽是java? Java 編程語言:簡單、完全面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的編程語言。

java-web學習筆記(第五章)

war 客戶 腳本元素 utf 輸出 PE 行動 包含 筆記 第五章:JSP語法 一:Servlet和JSP的區別和各自優勢?  Servlet和JSP均基於java語言,Servlet以java類的形式體現,JSP以腳本語言形式體現,兩者均需要在web

Java-Web學習筆記(第六章)

contex res page 發送 con 結果 管理 第六章 都是 一:什麽是內置對象?  1)定義:JSP內置對象(JSP隱含對象)是指不用聲明就可以在JSP頁面的腳本和表達式中直接使用的對象。  2)特點: &ems

java-web學習筆記(第三章)

t對象 元素 config ttr method 通過 OS 接口 實現 第三章:Servlet核心接口 1, ServletConfig對象的作用,在Servlet中如何使用? 每個Servlet擁有唯一的servletConfig對象,通過ServletConf

java-web學習筆記(第一章)

第一章 靜態網站 文件 jdk cat CA 結果 靜態 web入門 第一章:javaweb入門??1,靜態網站和動態網站的區別??2,知道c/s結構和b/s結構??3,web應用程序的處理過程:????用戶通過瀏覽器向服務器發送請求;????服務器端處理用戶的請求;???

java-web學習筆記(第四章)

解決方案 重寫 區別 學習 java 占用 表單 服務 安全 第四章:會話跟蹤 1,什麽是會話跟蹤技術 會話跟蹤技術是一種在客戶端和服務器端保持HTTP狀態的解決方案,是使上一次請求所傳遞的數據能夠維持狀態到下一次請求,並且辨認出是否是相同的客戶端所發送出來的。主要

java-web學習筆記(第二章)

直接 () destroy 垃圾回收 垃圾回收器 troy 鏈接 ems cse 第二章:Servlet基礎 1,創建Servlet有幾種方式?處理http請求最好使用哪種方式?  1>直接實現Servlet接口和它的所有方法;&emsp

Java-Web學習筆記(第八章)

lan request 雙引號 text ava user OS 程序 Language 第八章:表達式語言 一:EL簡介 EL是一種簡單的語言,可以方便的訪問和處理應用程序數據,而無需使用JSP腳本元素或JSP表達式二:EL語法 (1)語法:${表達式

Java-Web學習筆記(第九章)

port pac clas tle code lang tran RR req 一:自定義標簽庫(步驟)1>開發自定義標簽類(編寫一個實現SimpleTagSupport接口的java類) package book07; import java.io.IOExcep

Java Web學習筆記----詳解ServletAPI

開始 共享 擴展 學習java 將他 默認 config nta generic 昨天聊了一大堆亂七八糟的東西。今天給大家分享一下當初我學習JavaWeb的筆記吧。 Servlet技術是JavaWeb中的核心技術,emmmmmmmm。。。。 太枯燥了,還是先從API開始說吧

Java Web學習筆記(五)

GenertcServlet 是一個Servlet,是Servlet介面和ServletConfig介面的實現類,是一個抽象類,其中的service方法為抽象方法。 如果新建的Servlet程式直接繼承GenertcServlet會使開發更簡潔。 具體實現: 在Ge

Java Web學習筆記(四)

ServletConfig 封裝了Servlet的配置資訊,並且可以獲取ServletContext物件 1.配置初始化引數; 2.獲取初始化引數: - getInitParameter(String name):獲取指定引數名的初始化引數 - getINitParameterN

Java Web學習筆記(三)

HTTP(超文字傳輸協議) TCP/IP協議集中的一個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程以及資料本身的格式 瀏覽器與WEB伺服器的連線過程是短暫的,每次連線只處理一個請求和響應。對每一個頁面的訪問,瀏覽器與WEB伺服器都要簡歷一次單獨的連線。 瀏覽器

Java Web學習筆記(二)

Servlet的註冊與執行: Servlet程式必須通過Servlet容器來啟動執行,並且儲存目錄有特殊要求,需要儲存在< WEB應用程式目錄 >\WEB-INF\classes\目錄中。 Servlet程式必須在WEB應用程式的web.xml檔案中進行註冊和對映其訪問路徑

Java Web學習筆記(一)

- Java Web介紹: Java Web,是用Java技術來解決相關web網際網路領域的技術總和。web包括:web伺服器和web客戶端兩部分。JavaWeb應用由一組Servlet、HTML頁、類、以及其它可以被繫結的資源構成。 JavaWeb應用中可以包含: - Servl

Java Web 學習筆記(二)

一、JavaScript簡介      JavaScript 是一種輕量級的程式語言。      JavaScript 是可插入 HTML 頁面的程式設計程式碼。 二、JavaScript 使用