web工程中读取txt文件中二维数组并在页面显示
来源:互联网 发布:福州公司网络管理制员 编辑:程序博客网 时间:2024/05/19 23:10
一,
如图,web工程要读取的txt文本的格式如图:第一行为标题,也就是关键字。现在要做的就是当在页面输入第一行的一个关键字的时候,能够输出该列的信息。当输入的关键字不在第一行的范围内的时候,出现相关提示信息。而且该二维数组是可扩展的。
Servlet:
package servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SerchTestServlet extends HttpServlet {
private static final Stirng ContentType="text/html;charset=utf-8"; //把ContentType设置为常量
public void doGet(HttpServletRequest request, HttpServletResponse response)
{
try{
doService(request,response);
}catch(Exception e){
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
try{
doService(request,response);
}catch(Exception e){
e.printStackTrace();
}
}
/*
*Servlet的主方法,响应页面请求,在也面展现请求方法
*/
public void doService(HttpServletRequest request, HttpServletResponse response){
request.setCharacterEncoding("utf-8");
String pName = request.getParameter("name");
response.setContentType(ContentType);
String FileName="\\WEB-INF\\mockData\\info.txt";
String realPath=this.getServletContext().getRealPath("/")+fileName;//文件路径
List<Map<String,String>> list=readFile(realPath);//用List<Map<String,String>>的形式存储文本数据
if(isContainsKey(list,pName)){//判断输入的关键字是否存在于第一行标题之中
for( Map<String,String> map:list){//如果存在则在页面展示
response.getWriter.print("<p>"+map.get(pName)+"</p>");
}else{//否则,输出错误信息
response.getWriter().print("<p>抱歉,您输入的关键字不在搜索范围之内</p>");
}
}catch(Exception e){
e.printStackTrace();
}
}
//判断输入的关键字是否存在于第一行标题之中
private boolean isContainsKey(List<Map<String,String>> list,String pName){
if(list.get(0).containsKey(name)){
return true;
}else{
return false;
}
}
//读取文本数据并保存在List<Map<String,String>>中
private List<Map<String,String>> readFile(String FilePath){
File file=new File(FilePath);
List<Map<String,String>> list=new ArrayList<Map<String,String>>();
if(file.exits()){
try{
FileReader reader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(reader);
String line=null;
String keyWords[]=bufferedReader.readerLine().spilt("\\s+");//读取第一行数据
while((line=buffereReader.readLine())!=null){
Map<String,String> map=orderCount(keyWords,line);//读取其它行数据,存于map中
list.add(map);
}
}catch(Exception e)
e.printStackTrace();
}
return list;
}
//读取其它行数据,存于map中
private Map<String,String> orderContent(String keyWords[],String line){
Map<String,String> map=new HashMap<String,String>();
String [] words=line.spilt("\\s+");
for(int i=0;i<keyWords.length;i++){
map.put(keyWords[i],words[i]);
}
return map;
}
}
顺便贴一下jsp代码:
<%-- 20170731 查找测试主页--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script language="JavaScript" src="js/jquery-1.4.2.js"></script> <script type="text/javascript"> $(function () { $("#search").click(function () { var name = $("#inp").val(); $("#myText").load("SearchTestServlet", {"name": name}); }); }); </script></head><body><div style="text-align:center"> <input id="inp"/> <button id="search">查找</button></div><br><br><br><hr><div id="myText" style="text-align:center"> <input type="text" style="height:70px;width:200px"/></div></body></html>
心得:1,最主要的还是数据结构的选取,用List<Map<String,String>>来存储文本数据。使标题和每一行对应。
2,按行读取,按列存储。
- web工程中读取txt文件中二维数组并在页面显示
- 读取.txt文件并在页面显示
- 从txt文件中读取数据到二维数组
- C++从txt文件中读取二维的数组
- 使用fstream在C++工程中读取文件到二维数组
- qt 读取txt文件内容并保存到数组中
- MFC打开txt文件并读取二维不等列数组
- 从txt文件读取数据显示在文本框中
- C# 读取txt文件存储在String数组中
- asp.net读取Excel表并显示在页面中
- 从txt中读取数据存入二维数组
- 从一个txt文件中读取文章并删除特定单词并显示文章
- 读取pdf并且在web页面中显示
- 点击按钮,读取txt文件,并在EDIT显示
- 在j2me中读取txt文件数据
- 在j2me中读取txt文件数据
- 在j2me中读取txt文件数据
- vb读取文件并在文本框中显示
- mysql中 show index from tb_name命令各列的含义,mysql binary 含义
- django 部署后一直返回500
- House Prices (1):python 探索性数据分析
- keepalived双机热备故障时发送邮件
- android 对activity进行管理
- web工程中读取txt文件中二维数组并在页面显示
- java.sql.SQLException: Access denied for user 'Administrator'@'192.168.5.103' (using password: YES)
- 用Python编写MapReduce代码与调用-统计accessLog中链接所对应的UV
- POJ1845-Sumdiv (对A进行素因子分解+A^B的所有约数之和为+A^B的所有约数之和为+A^B的所有约数之和为)
- @RuquestMapping和@Pathvariable
- 希尔排序1
- jquery hover 不停闪动 解决(亦为stop()的使用)
- 报错处理:Expression parameters.formName is undefined on line xx, column xx in xx/xx/doubleselect.ft
- 诡异的二叉树的中序遍历二