个人项目----词频统计WEB(部分功能)
需求分析
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(部分功能)的更多相关文章
- 词频统计Web工程
本次将原本控制台工程迁移到了web工程上.. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经典英 ...
- Java实现的词频统计——Web迁移
本次将原本控制台工程迁移到了web工程上,依旧保留原本控制台的版本. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息 ...
- java词频统计——web版支持
需求概要: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件. 2.用户直接输入要统计的文本,服务器返回结果 3.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经 ...
- 个人项目-词频统计(语言:C++)
词频统计 (个人项目) 要求 (1). 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率. 附加要求:读入一段文本文件,统计该文本文件中单词的频率. (2) ...
- 作业3-个人项目<词频统计>
上了一天的课,现在终于可以静下来更新我的博客了. 越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”. 词频统计 单词: 包含有4个或4个以上的字 ...
- 软件工程第一次个人项目——词频统计by11061153柴泽华
一.预计工程设计时间 明确要求: 15min: 查阅资料: 1h: 学习C++基础知识与特性: 4-5h: 主函数编写及输入输出部分: 0.5h: 文件的遍历: 1h: 编写两种模式的词频统计函数: ...
- 词频统计-------------web版本
要求:把程序迁移到web平台,通过用户上传TXT的方式接收文件.建议(但不强制要求)保留并维护Console版本,有利于测试. 在页面上设置上传的控件,然后在servlet中接受,得到的是一个字节流, ...
- 结对项目— 词频统计2(语言C++)
结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...
- 结对项目— 词频统计(语言C++)
结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...
随机推荐
- 大二作业——操作系统实验——C语言用双向链表,模拟实现动态分区式存储管理
实验:动态分区式存储管理 实验内容: 编写程序模拟完成动态分区存储管理方式的内存分配和回收.实验具体包括:首先确定内存空闲分配表:然后采用最佳适应算法完成内存空间的分配和回收:最后编写主函数对所做工作 ...
- (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)
一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...
- BAPI_MATERIAL_SAVEDATA
品目マスタ登録変更BAPI 概要 品目マスタを登録または変更するBAPIです.品目マスタのビューの拡張も行うことができます. BAPIでは品目マスタ登録画面(MM01)のような入力チェックがかからない ...
- Wcf服务测试自带工具
Visual Studio 安装包文件夹 \Common7\IDE\WcfTestClient.exe
- [BZOJ1185][HNOI2007]最小矩形覆盖-[凸包+旋转卡壳]
Description 传送门 Solution 感性理解一下,最小矩形一定是由一条边和凸包上的边重合的. 然后它就是模板题了..然而真的好难调,小于大于动不动就打错. Code #include&l ...
- idea alt+enter导包时被锁定导某一个包时的解决方法
在只有一个包指向的时候,把光标放在Test这种字符之间的话 就会直接导这个 所以把光标放在最后就可以导别的了
- java 多路分发
1.概念 一个函数处理多种类型,其实和多态差不多. 但是要处理两种或者多种类型的数据时,就需要判断每种类型以及每种类型所对应的处理.(PS:我只是在走别人的老路,网上一搜这种概念,博客一大堆,我不知道 ...
- linux 同步 rsync的使用——远程服务器同步配置
一.背景介绍 由于需要和其他系统进行对接.文件的逻辑地址通过接口传递,而文件的实体需要通过服务器间的同步进行传输.在同事的建议下选择了rsync. 二.RSYNC介绍 RSYNC 有多种方式进行同步, ...
- Selenium2+python自动化-iframe
前言 本篇详细讲解iframe的相关切换操作. 一.frame和iframe区别 Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性. frame是整个页 ...
- jvm之GC知识点
GCRoots: 虚拟机栈(栈帧中的局部变量表)引用的对象 方法区中静态属性引用的对象 方法去中常量引用的对象 本地方法栈中JNI(NATIVE方法) ...