亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

簡單的網頁關鍵詞匹配工具

2019-11-18 11:55:16
字體:
來源:轉載
供稿:網友

  你是否曾經使用大量的具體信息創建網頁,然后希望讀者可以使用一種簡單的方法,根據特定于用戶的要害詞分析和進入相應頁面?本文解釋了如何使用Html表單和jsp技術來正確地實現上述要求。即使你從沒希望得到這種效果,你可能也會發現本文的演示例子和代碼練習十分有用,因為這些例子和代碼涵蓋了如何檢索請求的值,并將這些值與靜態文件中讀到的值進行比較。
  
  工作原理
  HTML表單
  搜索網頁
  代碼練習
  捕捉要害詞
  工作原理
  這個HTML表單已經放置在你想要搜索的網頁里了。該表單給出了一個可選的要害詞列表,這些要害詞是網頁中已知的詞,與你的主題不匹配,但是你相信用戶可能想要搜索這些詞。該表單還為用戶提供了一個輸入域,假如用戶沒有在那個列表中找到想要的要害詞,就可以在這個輸入域中輸入他想要的要害字。
  
  當用戶敲回車鍵或點擊Go按鈕時,就會調用JSP逐行分析HTML頁面,尋找用戶指定的要害詞,并返回該HTML頁面中包含要害詞的所有行。返回的結果根據匹配的要害詞來組織。
  
  HTML表單
  下圖左面顯示了這個HTML表單,右邊給出了創建該表單的HTML代碼。這個表單是可以用的,你可以選則或輸入要害詞并點擊Go按鈕。
  
  當你點擊Go按鈕之后,一個JSP頁面將被調用來分析javaServer Pages Technology索引頁面的一份拷貝,并返回一個文章列表,這些文章的某個或某些條目包含了指定的要害詞。舉例來說,假如你記得曾經讀到一篇Steve寫的文章,那么輸入“Steve”并點擊Go按鈕,就可以查看Steve的文章列表。
  
  注重: 這個過程可能持續幾秒鐘的時間,因為下面描述的這個搜索頁需要讀取很多標題條、腳注和左側導航的HTML代碼。
  
  表單外觀
  實現該表單的HTML
  
  Select keyWords from the list below:
  JakartaCachedRowSetPRopertiesApache
  
  and/or enter a search phrase:
  
  <form action="findwords.jsp" method="get">
  Select keywords from the list below:
  <input type="hidden" name="col" value="searchreports">
  <select size="4" name="qp" multiple>
  <option value="Jakarta">Jakarta
  <option value="CachedRowSet">CachedRowSet
  <option value="properties">Properties
  <option value="Apache">Apache
  </select>
  
  and/or enter a search phrase:</font>
  <input type="text" name="qt" size="20" maxlength="50" value="">
  <input type="image" src="http://www.QQread.com/java/go.gif" border="0">
  </form>
  
  搜索頁面
  這個JSP網頁的代碼需要搜索頁 使用段落標簽包含起來。例如,網頁入口的代碼應該像下面給出的這樣。注重,為了使HTML頁面更加易讀,因而在下面的入口代碼中沒有使用回車:
  
  <P>
  <a href="/pathname/">Maintaining State for HTML Form Buttons</a> by Matthias Laux <br>Here's the scoop on using JavaServer Pages custom tags to maintain button state in your HTML forms. <i>(October 2002)</i>
  </p>
  
  相反,下面這個例子在“Laux”和“Here’s”之間使用了回車,以確保源文件更加易于理解。
  
  <P>
  <a href="/pathname/">Maintaining State for HTML Form Buttons</a> by Matthias Laux
  <br>Here's the scoop on using JavaServer Pages custom tags to maintain button state in your HTML forms. <i>(October 2002)</i>
  </p>
  
  為什么沒有返回格式?
  假如你像上面的第一個例子那樣不考慮漏掉用于格式化的回車符,那么JSP代碼將讀取整行數據,分析其中是否有要害詞出現,假如有匹配存在,則在結果頁面中返回整行。在第二個例子中,JSP代碼讀取“Laux”之上的行,然后進行分析,假如有匹配就在結果頁面中返回該行。這段代碼接下來讀取以“Here’s”開始的下一行。
  
  簡而言之,由于整個頁面被打亂了,因此并沒有完全返回整個頁面。在上面的例子中,假如搜索條件是“Maintaining”,結果只會返回標題和作者而沒有簡介;假如搜索條件是“maintain”,結果將返回簡介而不是標題和作者。
  
  代碼分析
  本節對findwords.jsp的每一部分分別進行介紹,findwords.jsp是當用戶點擊Go按鈕時調用的JSP代碼。
  
  注重: 源代碼在一個txt文件中,因此你可以將其當作文本來瀏覽。以“jsp”為后綴意味著web服務器需要將該文件編譯成一個servlet并且執行它。
  
  JSP看上去就像一個HTML網頁,只不過其中通過JSP標簽嵌入了servlet代碼片段。有許多不同類型的JSP標簽,在本小節只涉及了其中的一部分。
  
  指令
  JSP指令用<%@ and %>指令標簽來包含,當JSP網頁被轉換為servlet時由JSP引擎處理。 本例中的頁面指令告訴JSP引擎腳本語言是Java(language="java"),并且需要包含指定的Java包。
  
  聲明
  JSP聲明由<%! and %>聲明標簽包含,答應你設置變量以便稍后在程序中使用。你也可以在使用的時候聲明變量。只是要記住無論變量在哪里聲明,其作用域都是整個JSP頁面。本例中的聲明聲明了一個隨機訪問文件和一些用于讀取搜索頁的字符串變量。
  
  設置文件和變量
  代碼的下一行初始化變量,并且打開一個到searchpage.html的連接,searchpage.html是將要搜索的網頁。在這個例子中,該文件是JavaServer Pages Technology索引頁面的一份拷貝。這個初始化過程獲得要搜索的文件的長度,得到該文件的第一行,并且將一些變量設為0或空值。
  
  val變量是一個標志,用于指示一個匹配是否是其類別中的第一個,并且由此判定是必須重新建立一個匹配序列,還是在已有的序列上繼續搜索。
  results變量也是一個標志變量,用于指示是否找到匹配。假如沒有任何匹配,則在返回頁上向用戶返回一個消息。
  File inputFile = new File("/pathname/searchpage.html");
  in = new RandomaccessFile(inputFile, "r");
  
  long length = in.length();
  
  s = in.readLine();
  
  int val = 0;
  
  int results = 0;
  String[] qpValues = null;
  String qtValue = null;
  
  結果頁和記錄條目
  接下來的代碼用于打印結果網頁的標題,檢查從可選序列得到的選擇值(getParameterValues("qp"))和從表單上的輸入域得到的值(getParameter("qt"))。找到的所有值都會被檢索,并用于創建在結果頁頂部顯示的項目列表索引。
  
  out.println("<h4>Keyword Search Results</h4>");
  out.println("<ul>");
  
  for(int j = 0; j < qpValues.length; j++) {
  
  out.println("<li><a href=#" + qpValues[j] + ">"
  + qpValues[j] + "</a>");
  }
  }
  
  if(request.getParameter("qt") != null) {
  qtValue=request.getParameter("qt");
  if(qtValue.length() > 0) {
  out.println("<li><a href=#" + qtValue + ">"
  qtValue + "</a>");
  }
  }
  
  out.println("</ul>");
  
  大小寫和從文件中讀取
  檢索到的任何選項值都使用它在表單中輸入的原始大小寫,從而與文件中讀到的行的字符進行匹配,并且還被全部轉換為小寫來進行比較。這是為了捕捉該條目中的所有可能性。例如,“Properties”使用大寫的“P”與searchpage.html 中的每行進行一次比較,使用小寫“p”也做一次。這樣同時滿足了“properties”在一個句子的開頭和在中間的情況。從輸入域得到的值則只使用輸入的精確值,或者全大寫、或者全小寫,或者是輸入狀態。
  
  每行開頭和結尾的空格自動去掉,并且每行都檢查是否以“<A HREF”開始。searchpage.html文件的每一行都是用左對齊,但是當一行以空格或tab開頭時,去掉空格的操作可以解決可能錯誤地輸入到要害詞前面的空格或者制表鍵的問題。文件中我們感愛好的所有行都是以“<A HREF” 開頭的,而這在另一個文件中理所當然是必然會改變的,例如對以“<li”開頭的行感愛好,或其他的一些什么。
  
  選項值:尋找匹配
  這段代碼的主要部分將選項值和從searchpage.html讀到的行進行比較以便尋找匹配。當尋找到匹配時,將該行在其正確的類別下作為一個項目列表項返回到結果頁面。
  
  if(request.getParameterValues("qp") != null) {
  qpValues = request.getParameterValues("qp");
  
  for (int i = 0; i < qpValues.length; i++) {
  
  while(s!=null) {
  if(s != null && s.length() > 0 ) {
  if(s.trim().startsWith("<A HREF")
  && qpValues[i].length() > 0) {
  
  String lower = qpValues[i].toLowerCase();
  
  if(s.indexOf(qpValues[i]) > 0
   s.indexOf(lower) > 0) {
  results=1;
  
  if(val == 0) {
  out.println("<a name=" + qpValues[i] + "></a>");
  out.println("<h4>");
  out.println(qpValues[i]);
  out.println("</h4>");
  out.println("<ul>");
  val=1;
  }
  
  out.println(s);
  out.println("<p>");
  }<

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线视频线视频免费网站| 91av在线视频观看| 在线精品国产成人综合| 欧美激情奇米色| 91精品久久久久久久久久| 亚洲午夜久久久久久久| 91成人天堂久久成人| 国自产精品手机在线观看视频| 亚洲久久久久久久久久久| 欧美日韩精品在线播放| 日韩在线视频播放| 欧美电影院免费观看| 欧美怡红院视频一区二区三区| 97在线视频观看| 九九九热精品免费视频观看网站| 精品久久久久久久久久久久| 中文字幕日韩欧美| 国产精品99导航| 欧美成人精品h版在线观看| 国产精品久久久久久久久借妻| 亚洲a一级视频| 日韩天堂在线视频| 日韩免费高清在线观看| 一区二区三区四区视频| 欧美性猛交xxxx乱大交| 精品欧美一区二区三区| 国产精品18久久久久久首页狼| 亚洲男子天堂网| 亚洲人成网站777色婷婷| 国产午夜一区二区| 欧美专区在线观看| 国产91露脸中文字幕在线| 欧美日韩国产色视频| 精品亚洲永久免费精品| 久久99亚洲热视| 中文字幕日韩欧美精品在线观看| 国产精品99久久久久久白浆小说| 日韩在线观看免费高清完整版| 国产精品女主播视频| 亚洲第一免费网站| 不卡av在线播放| 亚洲人成网站免费播放| 久久久亚洲欧洲日产国码aⅴ| 国产精品日韩在线播放| 久久综合久久美利坚合众国| 国产精品美女视频网站| 欧美成人一区二区三区电影| 久久高清视频免费| 亚洲精选中文字幕| 欧美一区亚洲一区| 亚洲一区二区三区777| 亚洲欧美日韩区| 日韩小视频网址| 91精品国产网站| 欧美精品久久一区二区| 中文字幕国产精品久久| 久久精品国产久精国产一老狼| 国产精品影片在线观看| 亚洲美女中文字幕| 中文字幕日韩精品有码视频| 亚洲色图偷窥自拍| 亚洲免费影视第一页| 欧洲成人在线视频| 国产精品美女无圣光视频| 国产精品视频午夜| 最近2019好看的中文字幕免费| 国产精品无码专区在线观看| 久久综合国产精品台湾中文娱乐网| 亚洲级视频在线观看免费1级| 欧美成人剧情片在线观看| 欧美国产视频日韩| 日产日韩在线亚洲欧美| 国产精品一区久久| 成人黄色免费在线观看| 亚洲成av人影院在线观看| 福利微拍一区二区| 热久久免费视频精品| 欧美有码在线视频| 丝袜美腿亚洲一区二区| 欧美最猛性xxxxx(亚洲精品)| 亚洲精品国精品久久99热| 久久九九精品99国产精品| 91av在线播放视频| 91香蕉嫩草神马影院在线观看| 久久人人爽人人爽人人片亚洲| 日韩高清有码在线| 秋霞成人午夜鲁丝一区二区三区| 精品成人在线视频| 日韩在线观看免费av| 欧美疯狂性受xxxxx另类| 亚洲免费中文字幕| 国产成人精品电影| 国产亚洲a∨片在线观看| 国产精品丝袜久久久久久不卡| 国产成人久久久精品一区| 成人美女av在线直播| 久久天天躁夜夜躁狠狠躁2022| 91免费视频网站| 911国产网站尤物在线观看| 欧美日韩久久久久| 国产成人精品电影| 国产成一区二区| 色综合天天综合网国产成人网| 91在线|亚洲| 亚洲网站视频福利| 国产精品pans私拍| 91精品在线观看视频| 国产一区二区日韩| 91欧美精品成人综合在线观看| 日韩**中文字幕毛片| 国产v综合v亚洲欧美久久| 精品中文字幕在线观看| 91日韩在线播放| 国产精品亚洲激情| 欧美亚洲日本网站| 国产精品高潮视频| 性亚洲最疯狂xxxx高清| 亚洲精品女av网站| 亚洲精品自拍偷拍| 国产精品自产拍在线观看| 欧美老女人在线视频| 日韩免费电影在线观看| 日韩美女在线观看一区| 亚洲精品一区中文字幕乱码| 亚洲精品视频久久| 日韩欧美中文第一页| 日本久久精品视频| 国产精品第七影院| 国产亚洲精品久久久久动| 日韩av色综合| 91禁外国网站| 91av在线网站| 国产精品激情av电影在线观看| 日韩精品在线第一页| 少妇av一区二区三区| 免费91麻豆精品国产自产在线观看| 精品亚洲va在线va天堂资源站| 亚洲影视九九影院在线观看| 久久久国产一区二区| 欧美日韩国产丝袜另类| 亚洲中国色老太| 国产精品视频在线播放| 久久久久久91香蕉国产| 国产精品久久久久秋霞鲁丝| 国产亚洲精品成人av久久ww| 51久久精品夜色国产麻豆| 亚洲人午夜精品免费| 精品久久久久久久久久久久久久| 日韩av在线影院| 成人激情视频免费在线| 亚洲综合精品一区二区| 欧美激情一二区| 91精品国产综合久久香蕉最新版| 国产精品久久不能| 庆余年2免费日韩剧观看大牛| 国产精品视频自在线| 亚州成人av在线| 日韩精品视频中文在线观看| 欧美日韩福利在线观看| 国内久久久精品| 精品福利在线观看| 亚洲香蕉成视频在线观看| 在线a欧美视频| 欧美精品久久久久久久久久|