<项目><day12>通讯录(自己做的)

设计一个通讯录主页面

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title>电话本首页</title>
 5
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11
12   </head>
13
14   <body>
15   <table align="center" border="1">
16   <form>
17     <center><h1>电话簿</h1></center>
18     <tr>
19         <td>1.<a href="/myPhoneBook/PhoneList"><input type="button" value="查询联系人"/></a></td>
20     </tr>
21     <tr>
22         <td>2.<a href="add.html"><input type="button" value="添加联系人"/></a></td>
23     </tr>
24     <tr>
25         <td>3.<a href="update.html"><input type="button" value="修改联系人"/></a></td>
26     </tr>
27     <tr>
28         <td>4.<a href="/myPhoneBook/Delete"><input type="button" value="删除联系人"/></a></td>
29     </tr>
30
31   </form>
32    </table>
33   </body>
34 </html>

1.添加联系人:

1.1保存页面

<!DOCTYPE html>
<html>
  <head>
    <title>添加联系人页面</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

  <body>
    <form action="/myPhoneBook/Add" method="POST">
    <table cellpadding="10" border="1" align="center">
        <tr>
        <td>编号</td>
        <td><input type="text" name="id"/></td>
        </tr>
        <tr>
        <td>姓名</td>
        <td><input type="text" name="name"/></td>
        </tr>
        <tr>
        <td>年龄</td>
        <td><input type="text" name="age"/></td>
        </tr>
        <tr>
        <td>性别</td>
        <td>
        男<input type="radio" checked="checked" name="gender" value="男"/>
        女<input type="radio" name="gender" value="女"/>
        </td>
        </tr>
        <tr>
        <td>电话</td>
        <td><input type="text" name="phone"/></td>
        </tr>
        <tr>
        <td>QQ</td>
        <td><input type="text" name="qq"/></td>
        </tr>
        <tr>
        <td>邮箱</td>
        <td><input type="text" name="mail"/></td>
        </tr>
        <tr>
        <td colspan="2" align="center"><input type="submit" value="添加联系人"/><a href="index.html"></a></td>
        </tr>
    </table>
    </form>
  </body>
</html>

1.2保存逻辑:

AddServlet  (接收页面数据(getParameter()),使用dom4j保存到xml)修改联系人(完成)

 1 public class Add extends HttpServlet {
 2
 3     public void doPost(HttpServletRequest request, HttpServletResponse response)
 4             throws ServletException, IOException {
 5
 6         request.setCharacterEncoding("utf-8");
 7         response.setContentType("text/html;charset=utf-8");
 8
 9         String id = request.getParameter("id");
10         String name = request.getParameter("name");
11         String age = request.getParameter("age");
12         String gender = request.getParameter("gender");
13         String phone = request.getParameter("phone");
14         String qq = request.getParameter("qq");
15         String mail = request.getParameter("mail");
16
17         try {
18             write(id,name,age,gender,phone,qq,mail);
19         } catch (DocumentException e) {
20             e.printStackTrace();
21         }
22
23         response.getWriter().write("<font color=\"red\" size=\"6px\">添加成功</font><a href=\"index.html\">返回首页</a>");
24     }
25
26     public void write(String id, String name, String age, String gender,
27             String phone, String qq, String mail) throws IOException, DocumentException {
28         //关联或者创建一个xml文档
29 //        File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
30         File file = new File("/Person.xml");
31         //判断xml文档是否存在
32         if(!file.exists()){
33             //不存在,创建一个文档 ,并且添加根标签
34             Document doc = DocumentHelper.createDocument();
35             Element rootElem = doc.addElement("Persons");
36             save(file,doc);
37         }
38         //存在,读取这个文档根标签
39         Document doc = new SAXReader().read(file);
40         Element rootElem = doc.getRootElement();
41
42         Element perElem = rootElem.addElement("person");
43
44         perElem.addElement("id").setText(id);
45
46         perElem.addElement("name").setText(name);
47
48         perElem.addElement("age").setText(age);
49
50         perElem.addElement("gender").setText(gender);
51
52         perElem.addElement("phone").setText(phone);
53
54         perElem.addElement("qq").setText(qq);
55
56         perElem.addElement("mail").setText(mail);
57         save(file, doc);
58     }
59
60     public void save(File file, Document doc) throws IOException {
61         //将Document对象写入xml文档
62         FileOutputStream out = new FileOutputStream(file);
63         OutputFormat format = OutputFormat.createPrettyPrint();
64         format.setEncoding("utf-8");
65         XMLWriter writer = new XMLWriter(out,format);
66         writer.write(doc);
67         writer.close();
68     }
69
70 }

2.修改联系人

2.1修改页面

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title>修改联系人页面</title>
 5
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11
12   </head>
13
14   <body>
15   <form action="/myPhoneBook/Update" method="POST">
16   <center><h1>修改联系人</h1></center>
17     <table cellpadding="10" border="1" align="center">
18         <tr>
19         <td>需要修改人编号</td>
20         <td><input type="text" name="id_1"/></td>
21         </tr>
22         <tr>
23         <td>编号</td>
24         <td><input type="text" name="id"/></td>
25         </tr>
26         <tr>
27         <td>姓名</td>
28         <td><input type="text" name="name"/></td>
29         </tr>
30         <tr>
31         <td>年龄</td>
32         <td><input type="text" name="age"/></td>
33         </tr>
34         <tr>
35         <td>性别</td>
36         <td>
37         男<input type="radio" checked="checked" name="gender" value="男"/>
38         女<input type="radio" name="gender" value="女"/>
39         </td>
40         </tr>
41         <tr>
42         <td>电话</td>
43         <td><input type="text" name="phone"/></td>
44         </tr>
45         <tr>
46         <td>QQ</td>
47         <td><input type="text" name="qq"/></td>
48         </tr>
49         <tr>
50         <td>邮箱</td>
51         <td><input type="text" name="mail"/></td>
52         </tr>
53         <tr>
54         <td colspan="2" align="center"><input type="submit" value="确认修改"/></td>
55         </tr>
56     </table>
57     </form>
58   </body>
59 </html>

2.2修改逻辑

UpdateServlet ( 接收页面数据,把数据保存xml )

 1 public class Update extends HttpServlet {
 2
 3     public void doPost(HttpServletRequest request, HttpServletResponse response)
 4             throws ServletException, IOException {
 5
 6         request.setCharacterEncoding("utf-8");
 7
 8         String id_1 = request.getParameter("id_1");
 9         String id = request.getParameter("id");
10         String name = request.getParameter("name");
11         String age = request.getParameter("age");
12         String gender = request.getParameter("gender");
13         String phone = request.getParameter("phone");
14         String qq = request.getParameter("qq");
15         String mail = request.getParameter("mail");
16
17         try {
18             update(id_1,id,name,age,gender,phone,qq,mail,response);
19         } catch (Exception e) {
20             e.printStackTrace();
21         }
22     }
23
24     public void update(String id_1, String id, String name, String age,
25             String gender, String phone, String qq, String mail,
26             HttpServletResponse response) throws Exception {
27
28         response.setContentType("text/html;charset=utf-8");
29         //关联或者创建一个xml文档
30 //        File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
31         File file = new File("/Person.xml");
32         //判断xml文档是否存在
33         Document doc = new SAXReader().read(file);
34         Element rootElem = doc.getRootElement();
35
36
37         Iterator<Element> perIt = rootElem.elementIterator("person");
38         while (perIt.hasNext()) {
39             Element idEle = perIt.next().element("id");
40             if(id_1.equals(idEle.getText())){
41                 //得到对应ID的父节点
42                 Element parent = idEle.getParent();
43                 //根据父节点修改子节点的文本
44                 parent.element("id").setText(id);
45                 parent.element("name").setText(name);
46                 parent.element("age").setText(age);
47                 parent.element("gender").setText(gender);
48                 parent.element("phone").setText(phone);
49                 parent.element("qq").setText(qq);
50                 parent.element("mail").setText(mail);
51                 response.getWriter().write("<font color=\"red\" size=\"6px\">修改成功</font><a href=\"index.html\">返回首页</a>");
52                 save(file, doc);
53             }
54         }
55     }
56
57     private void save(File file, Document doc) throws FileNotFoundException,
58     UnsupportedEncodingException, IOException {
59         //将Document对象写入xml文档
60         FileOutputStream out = new FileOutputStream(file);
61         OutputFormat format = OutputFormat.createPrettyPrint();
62         format.setEncoding("utf-8");
63         XMLWriter writer = new XMLWriter(out,format);
64         writer.write(doc);
65         writer.close();
66     }
67
68 }

3.删除联系人:

3.1删除逻辑:

 1 public class Delete extends HttpServlet {
 2
 3     public void doPost(HttpServletRequest request, HttpServletResponse response)
 4             throws ServletException, IOException {
 5         //创建一个删除页面
 6         try {
 7             show(response);
 8         } catch (Exception e) {
 9             e.printStackTrace();
10         }
11
12         request.setCharacterEncoding("utf-8");
13         //获取要删除的联系人的ID
14         String temp = request.getParameter("choose");
15         if(temp!=null){
16             int choose = Integer.parseInt(temp);
17             try {
18                 //进行删除操作
19                 remove(choose,response);
20             } catch (Exception e) {
21                 e.printStackTrace();
22             }
23         }
24     }
25     protected void doGet(HttpServletRequest request, HttpServletResponse response)
26             throws ServletException, IOException {
27         this.doPost(request, response);
28     }
29
30     public void remove(int choose, HttpServletResponse response) throws Exception {
31
32         //关联或者创建一个xml文档
33 //        File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
34         File file = new File("/Person.xml");
35         Document doc = new SAXReader().read(file);
36         Element rootElem = doc.getRootElement();
37
38         Element perElem = (Element) rootElem.elements().get(choose-1);
39         perElem.detach();
40         save(file,doc);
41         response.getWriter().write("<center><font color=\"red\" size=\"6px\">删除成功</font><a href=\"index.html\">返回首页</a></center>");
42     }
43
44     public void save(File file, Document doc) throws Exception {
45         //将Document对象写入xml文档
46         FileOutputStream out = new FileOutputStream(file);
47         OutputFormat format = OutputFormat.createPrettyPrint();
48         format.setEncoding("utf-8");
49         XMLWriter writer = new XMLWriter(out,format);
50         writer.write(doc);
51         writer.close();
52     }
53
54     public void show(HttpServletResponse response) throws Exception {
55
56         response.setContentType("text/html;charset=utf-8");
57
58 //        File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
59         File file = new File("/Person.xml");
60         response.getWriter().write("<html><head><title>联系人页面</title><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></head><body><center><h1>联系人列表</h1></center><form action=\"/myPhoneBook/Delete\" method=\"POST\"><table cellpadding=\"10\" border=\"1\" align=\"center\"><tr align=\"center\"><td></td><td>编号</td><td>姓名</td><td>年龄</td><td>性别</td><td>电话</td><td>QQ</td><td>邮箱</td></tr>");
61         Document doc = new SAXReader().read(file);
62         Element rootElem = doc.getRootElement();
63
64         Iterator<Element> it = rootElem.elementIterator("person");
65         int count = 1;
66         while(it.hasNext()){
67             List<Element> list = it.next().elements();
68             response.getWriter().write("<tr align=\"center\"><td>"+count+".<input type=\"radio\" name=\"choose\" value=\""+count+"\"/></td>");
69             for (Element elem : list) {
70                 response.getWriter().write("<td>"+elem.getText()+"</td>");
71             }
72             response.getWriter().write("</tr>");
73             count++;
74         }
75         response.getWriter().write("<tr><td colspan=\"8\" align=\"center\"><input type=\"submit\" value=\"删除联系人\"/><a href=\"index.html\">回到首页</a></td></tr></table></form>");
76     }
77
78 }

4.显示联系人列表

public class PhoneList extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        try {
            showList(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void showList(HttpServletResponse response) throws Exception {

        response.setContentType("text/html;charset=utf-8");

//        File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
        File file = new File("/Person.xml");

        response.getWriter().write("<html><head><title>联系人页面</title><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></head><body><center><h1>联系人列表</h1></center><table cellpadding=\"10\" border=\"1\" align=\"center\"><tr align=\"center\"><td>编号</td><td>姓名</td><td>年龄</td><td>性别</td><td>电话</td><td>QQ</td><td>邮箱</td></tr>");
        if(!(file.exists())){
            Document doc = DocumentHelper.createDocument();
            Element rootElem = doc.addElement("Persons");
            save(file,doc);
        }
        Document doc = new SAXReader().read(file);
        Element rootElem = doc.getRootElement();

        Iterator<Element> it = rootElem.elementIterator("person");
        while(it.hasNext()){
            List<Element> list = it.next().elements();
            response.getWriter().write("<tr align=\"center\">");
            for (Element elem : list) {
                response.getWriter().write("<td>"+elem.getText()+"</td>");
            }
            response.getWriter().write("</tr>");
        }
        response.getWriter().write("</table><center><a href=\"index.html\">回到首页</a> <a href=\"add.html\">添加联系人</a> <a href=\"/myPhoneBook/Delete\">删除联系人</a></center>");
    }
    public void save(File file, Document doc) throws IOException {
        //将Document对象写入xml文档
        FileOutputStream out = new FileOutputStream(file);
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("utf-8");
        XMLWriter writer = new XMLWriter(out,format);
        writer.write(doc);
        writer.close();
    }

}
时间: 2024-08-27 02:47:42

<项目><day12>通讯录(自己做的)的相关文章

&lt;项目&gt;&lt;day12&gt;通讯录(视频)

1 需求分析(需求分析师) 功能分析: 1)添加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人 2 需求设计(系统分析师/架构师/资深开发人员) 2.1设计实体(抽象实体) 联系人实体: class Contact{ private String id; private String name; private String gender; private int age; private String phone; private String email; private Str

看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!

(一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为做项目管理跟踪项目进度,有的是做竞品分析给老板看.实际上,这些都不是产品经理的核心和重点.在较为成熟的企业,因为产品的壮大和人员的增多,为了便于协作和沟通,岗位会细化的很清楚,如产品经理.交互设计师.UI设计师.用户体验分析师.数据分析师.运营等等.但是创业型公司中产品经理往往都是身兼数职,创业公司

android项目之通讯录数据库

Android通讯录的制作有很多种方式,网上大部分也都有了,但是用数据库制作通讯录的却少之又少,这里我就制作一个简单的app供大家学习 先看一下效果图,在下面有提供项目源码 首先打开app会有一个全屏的闪屏效果 //全屏显示welcome画面 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.La

谈谈一个项目经理要怎么做

在这次的团队项目中,我担任的是项目经理,虽然之前在其他的课程的分组任务中一直是组长,但是很明显这次不一样,下面通过几个方面来总结一下这两周我当PM的一些收获和经验. 1.遇到了哪些问题 首先是人数的增多,我们团队一共有12个人,这些同学有一部分是之前合作过的,还有一部分是没有机会合作的,所以刚开始分组的时候有点担心不能协调好团队的分工,不过还好,每一个同学都很配合,分配的任务也能够认真的完成,这点我特别欣慰: 其次是老师的要求也比以前更严格,比如说写文档时要非常注意严谨性,服务器的响应时间是怎么

如何学习JavaEE,项目又该如何做?

01 java基础学习 建议初学者看视频学习,不推荐看书.入门视频选择非常重要,最好是通俗易懂.深入浅出的教学视频.如果入门视频选的不好,不知所云,容易产生厌倦心理:“从入门到放弃”.关于java书籍,前期的学习个人不推荐直接看书:书本较为枯燥.不直观.容易分心.可能坚持不下来. 02 javaEE入门学习 上面的基础部分的学习主要是为后阶段打好基础.javaEE是java开发学习路上举足轻重的一员,那么javaEE该如何学习呢?框架那么多,该学哪些呢?从哪个框架开始学习呢?从博主以及身边同学的

react项目导出数据怎么做?

做项目遇到导出数据,搜索了一个插件,简直太好用,几行代码就可以搞定. 插件是react-csv, 了解详细介绍大家可以去https://www.npmjs.com/package/react-csv 原文地址:https://www.cnblogs.com/kaiqinzhang/p/11329082.html

第一次讨论---项目选题都要做什么功能?

              第一次讨论 讨论时间:2019.11.15日 讨论地点:主楼教室 讨论内容:项目选题要做什么功能?每个成员想做的功能? 由于成员只是初步的讨论过,还没有深入讨论我们团队选题需要做的功能,所以我们组织了这次讨论.对于我们需要做的项目,每个人都阐述了自己的观点.同时也确定了成员的分工. 项目经理--丁宝铭 系统架构师--贺仲超 需求分析师--李基民 编码实现--杨烈伟 文档设计--丛慧 系统分析SA--李国相 数据库设计--李金涛 前端界面设计--李佳琦 测试--张晨钰

iOS项目 -- 模仿花椒直播做的第一层次界面

公最近直播比较火爆,我也跟跟风,自己做一个直播app, 现在打算用金山云直播的,但是去注册的时候,联系那边的工作人员,他们讲使用金山云直播要有公司和他们线下签约才能授权开放直播平台. 怎么办呢?于是我网上查资料,终于发现适合自己的云直播平台(作为一名程序员的我,考验再三,打算使用网易云直播来开放) 这是我找的资料: 视频技术的发展正在推动以直播为代表的视频服务席卷整个互联网,并冲击着传统行业,2016年已然成为了直播元年.同时,视频云服务的元年也悄悄开始,不管是互联网巨头还是初创企业都纷纷进军视

项目上线前应做的准备

一.    发布系统代码的自动发布脚本的编写,建立从本地提交代码——测试环境——审核——正式环境的上线流程,减少在这个过程中的手工操作.二.    监控系统1.    对服务器cup.内存.磁盘.网络等监控和报警.2.    对日志的监控和报警,比如一分钟内产生的错误日志数量,在线人数同比上周同一时间段的增减数等等.通过报警来更主动的发现问题,而不是等到用户反映出来我们才发觉.特别是每次发布新的版本时,这个监控能够及时反映问题.有些问题出现之前会有前兆,监控系统最好能够捕捉到这些前兆,而不是等到