开发一个web应用,已知在某文件里边有某些数据,实现这些数据的查询,删除和添加,此处文件为电脑c盘下桌面上名字叫data1.txt的文件

TXT文档中,源数据为:

其中,名字和专业和班级和方向之间都是一个退格,方向后为换行;

先写一个message类:

package com.it.test;public class message {private String name;//private String major;//private String classes;//private String direction;///*** @return the name*/public message(String name,String major,String classes,String direction){this.name =name;this.major=major;this.classes=classes;this.direction=direction;}public String getName() {return name;}/*** @param name the name to set*/public void setName(String name) {this.name = name;}/*** @return the major*/public String getMajor() {return major;}/*** @param major the major to set*/public void setMajor(String major) {this.major = major;}/*** @return the classes*/public String getClasses() {return classes;}/*** @param classes the classes to set*/public void setClasses(String classes) {this.classes = classes;}/*** @return the direction*/public String getDirection() {return direction;}/*** @param direction the direction to set*/public void setDirection(String direction) {this.direction = direction;}}

然后,写一个method类,提供查找,添加删除方法

package com.it.test;
import java.util.*;
import java.io.*;
public class method {List<message>list=new LinkedList<>();//创建的新listpublic void add(String name,String major,String classes,String direction)//添加元素{message m=new message(name,major,classes,direction);list.add(m);}public message findname(String name)//按名字查找{int i;for(i=0;i<list.size();i++)if(list.get(i).getName().equals(name))return list.get(i);return null;//return list.get(i);//return null;}public int deletename(String name)//������ɾ��{int i;for(i=0;i<list.size();i++)if(list.get(i).getName().equals(name)){list.remove(i);//在集合里边删除 该元素//System.out.println("已删除");File file=new File("C:\\Users\\Sky\\Desktop\\data1.txt");if(file.exists())//如果当前文件存在file.delete();//就删除if(!file.exists())//如果不存在,就创建一个{try {file.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}FileWriter writer;try{   writer = new FileWriter("C:\\Users\\Sky\\Desktop\\data1.txt");//选定写入的对象为当前文件夹for(int j=0;j<list.size();j++)//因为list集合 已经删除掉了需要删除的元素{//并且,原文件也被删除掉了,所以就重新建一个跟原来名字一样的文件String help=list.get(j).getName()+"\t"+list.get(j).getMajor()+"\t"+list.get(j).getClasses()+"\t"+list.get(j).getDirection();writer.write(help);//然后再把集合里边的 元素写进去,就实现了元素删除writer.write("\r\n");}writer.flush();writer.close();}catch(Exception e){}return 1;//break;}return 0;}public void index()//��ѯ������//全部查询{if(list.size()==0){System.out.println("空表");return ;}for(int i=0;i<list.size();i++)System.out.println("姓名"+list.get(i).getName()+"   专业:"+list.get(i).getMajor()+"   班级  :"+list.get(i).getClasses()+"   方向 :"+list.get(i).getDirection());}}

然后写一个servlet,作为后台控制:

package com.it.test;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import java.io.*;
@SuppressWarnings("serial")
public class Test01 extends HttpServlet {/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}/*** The doPost method of the servlet. <br>*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {method me=new method();//由于每次跳转use.jsp,就会调用Test01,所以如果文件里边的数据不变,则删除无效request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String pathname="C:\\Users\\Sky\\Desktop\\data1.txt";//list存储为文件里边的数据,如果文件数据不变,则list不会变File filename=new File(pathname);InputStreamReader reader=new InputStreamReader(new FileInputStream(filename));BufferedReader buffer=new BufferedReader(reader);String line=buffer.readLine();while(line!=null){//response.getWriter().write(line+"<br>");String help[]=line.split("\\t");//把文件每行数据按退格分开if(help.length==4)me.add(help[0], help[1], help[2], help[3]);//存入list集合
//          for(int i=0;i<4;i++)
//          {
//              response.getWriter().write(help[i]);
//          }line=buffer.readLine();//然后读取下一行}buffer.close();String username=null;String name=null;username=request.getParameter("username");name=request.getParameter("name");if((username==null||username.trim().isEmpty())&&(name==null||name.trim().isEmpty()))//查询和删除都为空时,显示姓名不能为空{request.setAttribute("msg", "姓名不能为空");request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}if(me.findname(username)!=null&&(name==null||name.trim().isEmpty()))//删除为空,查询不为空,并且查询到了{request.setAttribute("msg", "姓名  "+me.findname(username).getName()+"  专业"+me.findname(username).getMajor()+"  班级"+me.findname(username).getClasses()+"  方向 :"+me.findname(username).getDirection());request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}if(me.findname(username)==null&&(name==null||name.trim().isEmpty()))//删除为空,查询不为空,没有查询到{request.setAttribute("msg", "("+username+")"+"查无此人");request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}if((username==null||username.trim().isEmpty())&&(name==null||name.trim().isEmpty()))//无效代码,请忽略{request.setAttribute("msg", "姓名不能为空");request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}int flag=me.deletename(name);//表示删除结果if((username==null||username.trim().isEmpty())&&flag==0)//查询为空,删除不为空,删除失败{request.setAttribute("msg", "("+name+")"+"查无此人");request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}if((username==null||username.trim().isEmpty())&&flag==1)//查询为空,删除不为空,删除成功{request.setAttribute("msg", "("+name+")"+"已删除");request.getRequestDispatcher("/use.jsp").forward(request, response);return ;}}}

最后,写出主要的jsp去调用servlet:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'use.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><center><div><h1>欢迎使用</h1><form action="servlet/Test01" method="post"><table><tr><td width="66" align="right"><font size="3">查询:</font></td><td colspan="2"><input type="text" name="username" value="${username }" style="width:200;height:25;"/></td></tr><tr><td width="66" align="right"><font size="3">删除:</font></td><td colspan="2"><input type="text" name="name" value="${name }" style="width:200;height:25;"/></td></tr><tr><td colspan="3" align="center"><input type="submit" value="提交" style="width:130;height:30;"/></td></tr> </table></form><font color="red" size="2"> ${msg }</font>  </div></center></body>
</html>

在tomcat上测试,结果为:

按照文件给的数据,查询"赵仕魁",得到:

然后删除"赵仕魁"

再查询“赵仕魁”:

最后再看文件里边的数据:


赵仕魁已经被删除了!

由于没有接数据库,并且不会用java对txt文件进行数据修改,用了一个不好的方法,先存到list里边,删除元素时,把文件也删除掉,然后建一个跟原文件名字一样的文件,由于需要删除的元素已经被list给删除了,然后按照list里边的元素,一个一个写到文件里边,再查询时,文件就没有删除过的元素了。

web 开发一个能进行人员管理(查询,删除,添加)的应用相关推荐

  1. k8s部署-48-k8s中如何选择使用哪个api,开发一个k8s的容器管理平台的思路是什么?

    k8s中有很多的api,我们的yaml文件开头一定要申明一个apiversion,怎么知道该使用哪个api呢?如何来选择正确的api呢? 我们又该如何来开发一个基于k8s的容器管理平台,开发k8s容器 ...

  2. 如何开发一个简单的智能对话查询工具

    我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现, IT 爱好者制作一个自己的 APP 或者小玩具等逐渐可以变为现实.自然语言对话即你的 APP 或者你制作的工具.机器人等能够 ...

  3. 使用nodejs开发一个markdown文档管理小系统(一)Using Nodejs to quickly develop a markdown management system...

    好多年没碰过前端jquery了,用一两天时间重温一下,刚好写个小工具, 不递归取文件夹和文件,只写一层,保持足够简单,验证和参数判断暂不写,毕竟只写了几个小时而已,功能算完备了,添加一个简单的管理员权 ...

  4. python开发系统-python3+django2开发一个简单的人员管理系统

    一.基础环境准备 windows环境: Pycharm python3.6 Django2.0.1 Mysql5.7 安装django 在pycharm terminal 控制台执行: python3 ...

  5. 全栈开发和web开发_全栈开发人员:这是什么,以及如何成为一个完整的开发人员...

    全栈开发和web开发 一个全职的开发人员是各行各业的杰作,也是一个备受追捧的求职者. 标题暗示着知识的广度,这对于人手不足的初创公司和管理复杂应用程序的大公司而言都是无价的. 但是, 术语" ...

  6. 软件开发项目管理(人员管理)

    软件开发项目管理中主要分为四部分(成本估算.风险分析.进度管理.人员管理)对于我们来说比较熟悉的应该是进度管理和人员管理,在提高班的第二个学年,每个人都要经历合作开发,而"合作开发" ...

  7. Web开发技术的演变

    原文出处: WildFly   欢迎分享原创到伯乐头条 受到好文<Web开发的发展史>(英文)激发的灵感,写下我对web开发技术的认识. 1. 静态页面时代 大学时候,上机还得换卡穿拖鞋, ...

  8. Web开发的发展史---Web开发技术的演变

    在接下来的几个月时间里,我打算写一系列关于完整web开发的文章.这第一篇文章虽然有所粗略,但也能够充分概括了在之前15年或者更久的时间里web应用程序如何进行演变.并且最后我会囊括下这段时间内所写的相 ...

  9. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

最新文章

  1. Java项目构建基础:统一结果,统一异常,统一日志
  2. Entity Framework Core的贴心:优雅处理带默认值的数据库字段
  3. C++智能指针(三)总结
  4. Python基本数据类型以及字符串
  5. 在ASP.NET Core中使用的ML.NET模型构建器入门
  6. HDU3549+Ford-Fulkerson
  7. 隐马尔可夫HMM(EM算法(期望最大化算法)
  8. poj 3080 Blue Jeans kmp+枚举
  9. ADB usb 或 WiFi 连接手机 ADB工具下载
  10. Sloth:网易流计算服务化平台架构实践
  11. 二项分布与伯努利试验的关系,看图说话
  12. Python 编程的最好搭档—VSCode 实用指南
  13. 浏览器内核 五大浏览器内核
  14. uniApp 实现微信小程序和app视频播放flv格式视频监控
  15. 信任是高效工作的基石,但是得来却非常不易
  16. 航天金盾人脸识别系统解决方案
  17. 输出字符的ascii码
  18. 华为路由器负载均衡_华为路由器配置利用NAT实现TCP负载均衡
  19. 《笨方法学python》习题43分析
  20. MATLAB-样条插值运算

热门文章

  1. 笔记15(Linux监控平台)
  2. 智能家居落地还有多远?
  3. 团部培训笔记-设计模式-《2013-11-27 代理模式》
  4. POJ 1037 DP
  5. 最新消息:更多的Windows Azure Marketplace Content 和Hands On Lab
  6. VDI序曲八 网关与VDI发布
  7. spring-boot-1.4x后@ConfigurationProperties注解舍弃location
  8. Linux合上笔记本不进入休眠模式
  9. xcode模拟器不显示键盘解决方案
  10. datagridview的数据存取