需求分析
1.使用web上傳txt檔案,對上傳的txt進行詞頻統計。
2.將統計後的結果輸出到web頁面,力求介面優美。
3.在介面上展示所給url的文章詞頻統計,力求介面優美。
3.將每個單詞同四、六級詞庫進行比對,統計所傳txt檔案中四、六級單詞涵蓋率。
4.在3的基礎上,展示文章中前10%單詞中的覆蓋百分比,詞頻前50%單詞、詞頻前80%單詞的覆蓋百分比。
由於能力有限,學習了很久,到目前為止之完成了第一個功能,並對結果進行了輸出,介面部分還有待學習。
程式碼實現
建立了兩個JSP介面,upload.jsp和index.jsp。
index.jsp
用來輸出顯示詞頻統計的結果。其中引用了之前寫過的詞頻統計woundcount類。該類可以很方便的統計出詞頻結果。
1 <%@ page language="java" contentType="text/html; charset=gb2312" 2 pageEncoding="UTF-8"%>//一定要把charset設定成gb2312要不然會出現亂碼 3 <%@page import = "wordcount04.wordcount" 4 import = "java.io.*" 5 import = "java.util.ArrayList" 6 import = "java.util.Map" %> //<%@page %>可以引用java包 7 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8 <html>//heml的內容 9 <head> 10 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 11 <title>詞頻統計結果</title>//題目,就是在每個頁面最上方顯示的名 12 </head> 13 <body> 14 <form action="index.jsp" >//表單標籤,可以用來畫格子,type可以表示各種引數,對應著不同的功能,例如file可以實現檔案上傳 15 <table border = "1">//設定輸出顯示時的邊框 16 <tr> 17 <th>單詞</th> 18 <th>詞頻數</th> 19 <% 20 try{ 21 String getfile = request.getParameter("file");//file是index裡的file,通過getParameter得到引數 22 String getbyte = new String(getfile.getBytes("gb2312"),"UTF-8"); 23 File file = new File(getbyte); 24 wordcount yl = new wordcount(); 25 Map<String, Integer> wc = yl.map(file);//詞頻統計 26 ArrayList<Map.Entry<String,Integer>> list = yl.SortMap(wc); 27 //輸出結果 28 for(int k = 0;k < list.size();k++){ 29 %> 30 <tr> 31 <td><%=list.get(k).getKey()%></td> 32 <td><%=list.get(k).getValue()%></td> 33 <% 34 35 } 36 37 38 }catch(Exception e){ 39 out.print(e); 40 } 41 %> 42 </table> 43 44 </form> 45 46 </body> 47 </html>
upload.jsp
這個頁面用來使用者上傳檔案。
1 <%@ page language="java" contentType="text/html; charset=gb2312" 2 pageEncoding="gb2312"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 7 <title>上傳詞頻統計檔案</title> 8 </head> 9 <body> 10 <form action="index.jsp" method="post"> 11 <input type="file" name="file"> 12 <input type="submit" value = "上傳"> 13 </form> 14 </body> 15 </html>
執行結果
upload
index
總結
這次web開發也不能說是從無到有,但的確是從最基礎的一點點學起。從格式,到每個標籤的含義,再到怎麼傳值。從看書,到學習資料。前前後後用了很長的時間。最後弄明白了JSP可以實現這個簡單的功能,而且也可以通過serverlet來完成這個過程,只是還沒弄弄透徹這個機制。只是還需要在日後對web開發進行跟深入的學習。這次也對時間進行了統計,成果在以下連結中展示。
連結(未完成)。