需求分析

  1.使用web上传txt文件,对上传的txt进行词频统计。

  2.将统计后的结果输出到web页面,力求界面优美。

  3.在界面上展示所给url的文章词频统计,力求界面优美。

  3.将每个单词同四、六级词库进行比对,统计所传txt文件中四、六级单词涵盖率。

  4.在3的基础上,展示文章中前10%单词中的覆盖百分比,词频前50%单词、词频前80%单词的覆盖百分比。

  由于能力有限,学习了很久,到目前为止之完成了第一个功能,并对结果进行了输出,界面部分还有待学习。

代码实现

  创建了两个JSP界面,upload.jsp和index.jsp。

  index.jsp

  用来输出显示词频统计的结果。其中引用了之前写过的词频统计woundcount类。该类可以很方便的统计出词频结果。

 <%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="UTF-8"%>//一定要把charset设置成gb2312要不然会出现乱码
<%@page import = "wordcount04.wordcount"
import = "java.io.*"
import = "java.util.ArrayList"
import = "java.util.Map" %> //<%@page %>可以引用java包
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>//heml的内容
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>词频统计结果</title>//题目,就是在每个页面最上方显示的名
</head>
<body>
<form action="index.jsp" >//表单标签,可以用来画格子,type可以表示各种参数,对应着不同的功能,例如file可以实现文件上传
<table border = "1">//设置输出显示时的边框
<tr>
<th>单词</th>
<th>词频数</th>
<%
try{
String getfile = request.getParameter("file");//file是index里的file,通过getParameter得到参数
String getbyte = new String(getfile.getBytes("gb2312"),"UTF-8");
File file = new File(getbyte);
wordcount yl = new wordcount();
Map<String, Integer> wc = yl.map(file);//词频统计
ArrayList<Map.Entry<String,Integer>> list = yl.SortMap(wc);
//输出结果
for(int k = 0;k < list.size();k++){
%>
<tr>
<td><%=list.get(k).getKey()%></td>
<td><%=list.get(k).getValue()%></td>
<% } }catch(Exception e){
out.print(e);
}
%>
</table> </form> </body>
</html>

  upload.jsp

  这个页面用来用户上传文件。

 <%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>上传词频统计文件</title>
</head>
<body>
<form action="index.jsp" method="post">
<input type="file" name="file">
<input type="submit" value = "上传">
</form>
</body>
</html>

运行结果

upload

index

总结

  这次web开发也不能说是从无到有,但的确是从最基础的一点点学起。从格式,到每个标签的含义,再到怎么传值。从看书,到学习资料。前前后后用了很长的时间。最后弄明白了JSP可以实现这个简单的功能,而且也可以通过serverlet来完成这个过程,只是还没弄弄透彻这个机制。只是还需要在日后对web开发进行跟深入的学习。这次也对时间进行了统计,成果在以下链接中展示。

链接(未完成)。

个人项目----词频统计WEB(部分功能)的更多相关文章

  1. 词频统计Web工程

    本次将原本控制台工程迁移到了web工程上.. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经典英 ...

  2. Java实现的词频统计——Web迁移

    本次将原本控制台工程迁移到了web工程上,依旧保留原本控制台的版本. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息 ...

  3. java词频统计——web版支持

    需求概要: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件. 2.用户直接输入要统计的文本,服务器返回结果 3.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经 ...

  4. 个人项目-词频统计(语言:C++)

    词频统计 (个人项目) 要求 (1). 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率. 附加要求:读入一段文本文件,统计该文本文件中单词的频率. (2) ...

  5. 作业3-个人项目<词频统计>

    上了一天的课,现在终于可以静下来更新我的博客了.       越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”.                词频统计 单词: 包含有4个或4个以上的字 ...

  6. 软件工程第一次个人项目——词频统计by11061153柴泽华

    一.预计工程设计时间 明确要求: 15min: 查阅资料: 1h: 学习C++基础知识与特性: 4-5h: 主函数编写及输入输出部分: 0.5h: 文件的遍历: 1h: 编写两种模式的词频统计函数: ...

  7. 词频统计-------------web版本

    要求:把程序迁移到web平台,通过用户上传TXT的方式接收文件.建议(但不强制要求)保留并维护Console版本,有利于测试. 在页面上设置上传的控件,然后在servlet中接受,得到的是一个字节流, ...

  8. 结对项目— 词频统计2(语言C++)

    结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...

  9. 结对项目— 词频统计(语言C++)

    结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...

随机推荐

  1. 学习Java的必要知识点记录

    在java中什么是类和对象 在还没有学习java类和对象的时候,基本上都是解决的一些比较简单的小程序,仅仅也就是几十行代码而已,如果要开发的是一个很大的程序,需要用到几万行甚至是几十万行代码的量,如果 ...

  2. 收集的PHP工具及类库

    composer     PHP的依赖管理工具 phpmig        PHP的数据库迁移工具,依赖于composer Requests for PHP    HTTP请求库,采集页面可以用到的 ...

  3. python 内置模块(sys)

    sys.argv           命令行参数List,第一个元素是程序本身路径sys.exit(n)        退出程序,正常退出时exit(0)sys.version        获取Py ...

  4. JUnit在intellij idea中只能在test里面才能使用,否则不能添加import

    只能在 src下的test下使用 不能再main下使用 否则不能import到指定的junit包 idea这样做的好处就是分离主项目和测试项目,这样一来就能够更加方便的测试了 如图直接这样把整个主包  ...

  5. vue-cli的安装使用

    通过 npm install vue 安装vue 后: 1.打开cmd 输入 npm install --global vue-cli 全局安装vue-cli脚手架 输入 vue -V 返回vue-c ...

  6. selenium自动化之加载浏览器的配置文件

    做seleniumUI自动化关于选用哪个浏览器方面,对于我来说,火狐浏览器只是用于定位元素,因为有firebug(注意高版本的火狐已经安装不了这个插件了),而真正执行自动化脚本用的是谷歌,感觉谷歌的速 ...

  7. 05-Docker架构详解

    Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 ...

  8. 基于zookeeper+mesos+marathon的docker集群管理平台

    参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...

  9. zabbix_agentd-install.sh (脚本部署zabbix_agentd服务)

    原文发表于cu:2016-05-20 基于http://www.cnblogs.com/netonline/p/7406598.html(http://blog.chinaunix.net/uid-2 ...

  10. while read读取文本内容

    读取文件给 while 循环 方式一: exec <FILE while read line do cmd done 方式二: cat FILE_PATH |while read line do ...