<项目><day12>通讯录(自己做的)
设计一个通讯录主页面
- <!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>
- <table align="center" border="1">
- <form>
- <center><h1>电话簿</h1></center>
- <tr>
- <td>1.<a href="/myPhoneBook/PhoneList"><input type="button" value="查询联系人"/></a></td>
- </tr>
- <tr>
- <td>2.<a href="add.html"><input type="button" value="添加联系人"/></a></td>
- </tr>
- <tr>
- <td>3.<a href="update.html"><input type="button" value="修改联系人"/></a></td>
- </tr>
- <tr>
- <td>4.<a href="/myPhoneBook/Delete"><input type="button" value="删除联系人"/></a></td>
- </tr>
- </form>
- </table>
- </body>
- </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)修改联系人(完成)
- public class Add extends HttpServlet {
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- request.setCharacterEncoding("utf-8");
- response.setContentType("text/html;charset=utf-8");
- String id = request.getParameter("id");
- String name = request.getParameter("name");
- String age = request.getParameter("age");
- String gender = request.getParameter("gender");
- String phone = request.getParameter("phone");
- String qq = request.getParameter("qq");
- String mail = request.getParameter("mail");
- try {
- write(id,name,age,gender,phone,qq,mail);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
- response.getWriter().write("<font color=\"red\" size=\"6px\">添加成功</font><a href=\"index.html\">返回首页</a>");
- }
- public void write(String id, String name, String age, String gender,
- String phone, String qq, String mail) throws IOException, DocumentException {
- //关联或者创建一个xml文档
- // File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
- File file = new File("/Person.xml");
- //判断xml文档是否存在
- 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();
- Element perElem = rootElem.addElement("person");
- perElem.addElement("id").setText(id);
- perElem.addElement("name").setText(name);
- perElem.addElement("age").setText(age);
- perElem.addElement("gender").setText(gender);
- perElem.addElement("phone").setText(phone);
- perElem.addElement("qq").setText(qq);
- perElem.addElement("mail").setText(mail);
- save(file, doc);
- }
- 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();
- }
- }
2.修改联系人
2.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/Update" method="POST">
- <center><h1>修改联系人</h1></center>
- <table cellpadding="10" border="1" align="center">
- <tr>
- <td>需要修改人编号</td>
- <td><input type="text" name="id_1"/></td>
- </tr>
- <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="确认修改"/></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
2.2修改逻辑
UpdateServlet ( 接收页面数据,把数据保存xml )
- public class Update extends HttpServlet {
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- request.setCharacterEncoding("utf-8");
- String id_1 = request.getParameter("id_1");
- String id = request.getParameter("id");
- String name = request.getParameter("name");
- String age = request.getParameter("age");
- String gender = request.getParameter("gender");
- String phone = request.getParameter("phone");
- String qq = request.getParameter("qq");
- String mail = request.getParameter("mail");
- try {
- update(id_1,id,name,age,gender,phone,qq,mail,response);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void update(String id_1, String id, String name, String age,
- String gender, String phone, String qq, String mail,
- HttpServletResponse response) throws Exception {
- response.setContentType("text/html;charset=utf-8");
- //关联或者创建一个xml文档
- // File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
- File file = new File("/Person.xml");
- //判断xml文档是否存在
- Document doc = new SAXReader().read(file);
- Element rootElem = doc.getRootElement();
- Iterator<Element> perIt = rootElem.elementIterator("person");
- while (perIt.hasNext()) {
- Element idEle = perIt.next().element("id");
- if(id_1.equals(idEle.getText())){
- //得到对应ID的父节点
- Element parent = idEle.getParent();
- //根据父节点修改子节点的文本
- parent.element("id").setText(id);
- parent.element("name").setText(name);
- parent.element("age").setText(age);
- parent.element("gender").setText(gender);
- parent.element("phone").setText(phone);
- parent.element("qq").setText(qq);
- parent.element("mail").setText(mail);
- response.getWriter().write("<font color=\"red\" size=\"6px\">修改成功</font><a href=\"index.html\">返回首页</a>");
- save(file, doc);
- }
- }
- }
- private void save(File file, Document doc) throws FileNotFoundException,
- UnsupportedEncodingException, 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();
- }
- }
3.删除联系人:
3.1删除逻辑:
- public class Delete extends HttpServlet {
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- //创建一个删除页面
- try {
- show(response);
- } catch (Exception e) {
- e.printStackTrace();
- }
- request.setCharacterEncoding("utf-8");
- //获取要删除的联系人的ID
- String temp = request.getParameter("choose");
- if(temp!=null){
- int choose = Integer.parseInt(temp);
- try {
- //进行删除操作
- remove(choose,response);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- this.doPost(request, response);
- }
- public void remove(int choose, HttpServletResponse response) throws Exception {
- //关联或者创建一个xml文档
- // File file = new File("h:/testdemo/jiuye/myPhoneBook/Person.xml");
- File file = new File("/Person.xml");
- Document doc = new SAXReader().read(file);
- Element rootElem = doc.getRootElement();
- Element perElem = (Element) rootElem.elements().get(choose-1);
- perElem.detach();
- save(file,doc);
- response.getWriter().write("<center><font color=\"red\" size=\"6px\">删除成功</font><a href=\"index.html\">返回首页</a></center>");
- }
- public void save(File file, Document doc) throws Exception {
- //将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();
- }
- public void show(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><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>");
- Document doc = new SAXReader().read(file);
- Element rootElem = doc.getRootElement();
- Iterator<Element> it = rootElem.elementIterator("person");
- int count = 1;
- while(it.hasNext()){
- List<Element> list = it.next().elements();
- response.getWriter().write("<tr align=\"center\"><td>"+count+".<input type=\"radio\" name=\"choose\" value=\""+count+"\"/></td>");
- for (Element elem : list) {
- response.getWriter().write("<td>"+elem.getText()+"</td>");
- }
- response.getWriter().write("</tr>");
- count++;
- }
- response.getWriter().write("<tr><td colspan=\"8\" align=\"center\"><input type=\"submit\" value=\"删除联系人\"/><a href=\"index.html\">回到首页</a></td></tr></table></form>");
- }
- }
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();
- }
- }
<项目><day12>通讯录(自己做的)的更多相关文章
- <项目><day12>通讯录(视频)
1 需求分析(需求分析师) 功能分析: 1)添加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人 2 需求设计(系统分析师/架构师/资深开发人员) 2.1设计实体(抽象实体) 联系人实体: ...
- Python之路,Day12 - 那就做个堡垒机吧
Python之路,Day12 - 那就做个堡垒机吧 本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...
- 看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!
(一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...
- 实战项目:通讯录 UI—第十一天
1.推出视图的两种方式: 1.通过导航控制器push到下一个界面,使用pop返回到上一个界面 2.通过模态的形式推出视图,不需要依赖于导航控制器,通过使用present到下一个界面,通过dismi ...
- 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...
- 如何学习JavaEE,项目又该如何做?
本文主要分为三个部分: 如何学习java基础 如何学习javaEE 你关心的项目问题 01 java基础学习 建议初学者看视频学习,不推荐看书.入门视频选择非常重要,最好是通俗易懂.深入浅出的教学视频 ...
- 【spring】在spring cloud项目中使用@ControllerAdvice做自定义异常拦截,无效 解决原因
之前在spring boot服务中使用@ControllerAdvice做自定义异常拦截,完全没有问题!!! GitHub源码地址: 但是现在在spring cloud中使用@ControllerAd ...
- iOS项目 -- 模仿花椒直播做的第二层界面完整版
,项目开始做了,好遗憾的是,花椒app有更新了版本,
- 在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目
这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴. Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可 ...
随机推荐
- 关于ie的内存泄漏与javascript内存释放
最近做一个公司的业务系统,公司要求能尽可能的与c/s近似,也就是如c/s一样,点击文本框可以弹出此项目的相关内容,进行选择输入. 我使用了弹出窗口,然后在子窗口双击选中项目,把选中的值返回给父 ...
- js递归和数组去重(简单便捷的用法)
1.递归例子<script type="text/javascript"> function test(num) { if(num < 0) { return; ...
- win10忘记wifi记录
1.点击桌面右下角无线图标 2.点击网络设置 3.点击管理WIFI设置 4.点击要管理的账户,忘记或者共享该wifi.
- HYSBZ 1086 王室联邦 (树的分块)
题意:国王想把他的国家划分成若干个省.他的国家有n个城市,是一棵树,即n-1条边,编号为1..n.为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市.每个省必须有 ...
- 【转】DLL中导出函数的两种方式(dllexport与.def文件)
DLL中导出函数的两种方式(dllexport与.def文件) DLL中导出函数的声明有两种方式: 一种方式是:在函数声明中加上__declspec(dllexport):另外一种方式是:采用模块定义 ...
- 关于apache access log 统计的那些事儿
统计APACHE ACCESS.LOG IP访问记录 可以根据自己的需要,统计很多,每个IP访问多少个页面等等! cat access.log-20090904 |awk '{print $3}'|s ...
- centos nginx uwsgi django
doc link uwsgi link video link
- Node.js 创建server服务器
var http=require('http'); //引入http模块 var server=http.createServer(function(req,res){ //创建一个server r ...
- Map容器之热血格斗场
3343:热血格斗场 总时间限制: 1000ms 内存限制: 65536kB 描述 为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家热血格斗场.格斗场实行会员制,但是新来的 ...
- django1.11 启动错误:Generator expression must be parenthesized
错误信息: Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0 ...