设计一个通讯录主页面

  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保存页面

  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/Add" method="POST">
  16. <table cellpadding="10" border="1" align="center">
  17. <tr>
  18. <td>编号</td>
  19. <td><input type="text" name="id"/></td>
  20. </tr>
  21. <tr>
  22. <td>姓名</td>
  23. <td><input type="text" name="name"/></td>
  24. </tr>
  25. <tr>
  26. <td>年龄</td>
  27. <td><input type="text" name="age"/></td>
  28. </tr>
  29. <tr>
  30. <td>性别</td>
  31. <td>
  32. <input type="radio" checked="checked" name="gender" value="男"/>
  33. <input type="radio" name="gender" value="女"/>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>电话</td>
  38. <td><input type="text" name="phone"/></td>
  39. </tr>
  40. <tr>
  41. <td>QQ</td>
  42. <td><input type="text" name="qq"/></td>
  43. </tr>
  44. <tr>
  45. <td>邮箱</td>
  46. <td><input type="text" name="mail"/></td>
  47. </tr>
  48. <tr>
  49. <td colspan="2" align="center"><input type="submit" value="添加联系人"/><a href="index.html"></a></td>
  50. </tr>
  51. </table>
  52. </form>
  53. </body>
  54. </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. Iterator<Element> perIt = rootElem.elementIterator("person");
  37. while (perIt.hasNext()) {
  38. Element idEle = perIt.next().element("id");
  39. if(id_1.equals(idEle.getText())){
  40. //得到对应ID的父节点
  41. Element parent = idEle.getParent();
  42. //根据父节点修改子节点的文本
  43. parent.element("id").setText(id);
  44. parent.element("name").setText(name);
  45. parent.element("age").setText(age);
  46. parent.element("gender").setText(gender);
  47. parent.element("phone").setText(phone);
  48. parent.element("qq").setText(qq);
  49. parent.element("mail").setText(mail);
  50. response.getWriter().write("<font color=\"red\" size=\"6px\">修改成功</font><a href=\"index.html\">返回首页</a>");
  51. save(file, doc);
  52. }
  53. }
  54. }
  55.  
  56. private void save(File file, Document doc) throws FileNotFoundException,
  57. UnsupportedEncodingException, IOException {
  58. //将Document对象写入xml文档
  59. FileOutputStream out = new FileOutputStream(file);
  60. OutputFormat format = OutputFormat.createPrettyPrint();
  61. format.setEncoding("utf-8");
  62. XMLWriter writer = new XMLWriter(out,format);
  63. writer.write(doc);
  64. writer.close();
  65. }
  66.  
  67. }

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.显示联系人列表

  1. public class PhoneList extends HttpServlet {
  2.  
  3. public void doGet(HttpServletRequest request, HttpServletResponse response)
  4. throws ServletException, IOException {
  5.  
  6. try {
  7. showList(response);
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  11. }
  12.  
  13. public void showList(HttpServletResponse response) throws Exception {
  14.  
  15. response.setContentType("text/html;charset=utf-8");
  16.  
  17. // File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
  18. File file = new File("/Person.xml");
  19.  
  20. 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>");
  21. if(!(file.exists())){
  22. Document doc = DocumentHelper.createDocument();
  23. Element rootElem = doc.addElement("Persons");
  24. save(file,doc);
  25. }
  26. Document doc = new SAXReader().read(file);
  27. Element rootElem = doc.getRootElement();
  28.  
  29. Iterator<Element> it = rootElem.elementIterator("person");
  30. while(it.hasNext()){
  31. List<Element> list = it.next().elements();
  32. response.getWriter().write("<tr align=\"center\">");
  33. for (Element elem : list) {
  34. response.getWriter().write("<td>"+elem.getText()+"</td>");
  35. }
  36. response.getWriter().write("</tr>");
  37. }
  38. response.getWriter().write("</table><center><a href=\"index.html\">回到首页</a> <a href=\"add.html\">添加联系人</a> <a href=\"/myPhoneBook/Delete\">删除联系人</a></center>");
  39. }
  40. public void save(File file, Document doc) throws IOException {
  41. //将Document对象写入xml文档
  42. FileOutputStream out = new FileOutputStream(file);
  43. OutputFormat format = OutputFormat.createPrettyPrint();
  44. format.setEncoding("utf-8");
  45. XMLWriter writer = new XMLWriter(out,format);
  46. writer.write(doc);
  47. writer.close();
  48. }
  49.  
  50. }

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

  1. <项目><day12>通讯录(视频)

    1 需求分析(需求分析师) 功能分析: 1)添加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人 2 需求设计(系统分析师/架构师/资深开发人员) 2.1设计实体(抽象实体) 联系人实体: ...

  2. Python之路,Day12 - 那就做个堡垒机吧

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

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

    (一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...

  4. 实战项目:通讯录&nbsp;UI—第十一天

     1.推出视图的两种方式:  1.通过导航控制器push到下一个界面,使用pop返回到上一个界面 2.通过模态的形式推出视图,不需要依赖于导航控制器,通过使用present到下一个界面,通过dismi ...

  5. 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)

    项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...

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

    本文主要分为三个部分: 如何学习java基础 如何学习javaEE 你关心的项目问题 01 java基础学习 建议初学者看视频学习,不推荐看书.入门视频选择非常重要,最好是通俗易懂.深入浅出的教学视频 ...

  7. 【spring】在spring cloud项目中使用@ControllerAdvice做自定义异常拦截,无效 解决原因

    之前在spring boot服务中使用@ControllerAdvice做自定义异常拦截,完全没有问题!!! GitHub源码地址: 但是现在在spring cloud中使用@ControllerAd ...

  8. iOS项目 -- 模仿花椒直播做的第二层界面完整版

    ,项目开始做了,好遗憾的是,花椒app有更新了版本,

  9. 在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

    这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴. Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可 ...

随机推荐

  1. 关于ie的内存泄漏与javascript内存释放

    最近做一个公司的业务系统,公司要求能尽可能的与c/s近似,也就是如c/s一样,点击文本框可以弹出此项目的相关内容,进行选择输入.     我使用了弹出窗口,然后在子窗口双击选中项目,把选中的值返回给父 ...

  2. js递归和数组去重(简单便捷的用法)

    1.递归例子<script type="text/javascript"> function test(num) { if(num < 0) { return; ...

  3. win10忘记wifi记录

    1.点击桌面右下角无线图标 2.点击网络设置 3.点击管理WIFI设置 4.点击要管理的账户,忘记或者共享该wifi.

  4. HYSBZ 1086 王室联邦 (树的分块)

    题意:国王想把他的国家划分成若干个省.他的国家有n个城市,是一棵树,即n-1条边,编号为1..n.为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市.每个省必须有 ...

  5. 【转】DLL中导出函数的两种方式(dllexport与.def文件)

    DLL中导出函数的两种方式(dllexport与.def文件) DLL中导出函数的声明有两种方式: 一种方式是:在函数声明中加上__declspec(dllexport):另外一种方式是:采用模块定义 ...

  6. 关于apache access log 统计的那些事儿

    统计APACHE ACCESS.LOG IP访问记录 可以根据自己的需要,统计很多,每个IP访问多少个页面等等! cat access.log-20090904 |awk '{print $3}'|s ...

  7. centos nginx uwsgi django

    doc link uwsgi link video link

  8. Node.js 创建server服务器

    var http=require('http'); //引入http模块 var server=http.createServer(function(req,res){  //创建一个server r ...

  9. Map容器之热血格斗场

    3343:热血格斗场 总时间限制:  1000ms 内存限制:  65536kB 描述 为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家热血格斗场.格斗场实行会员制,但是新来的 ...

  10. django1.11 启动错误:Generator expression must be parenthesized

    错误信息: Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0 ...