Web开发模式【Mode I 和Mode II的介绍、应用案例】(四)

简介: 笔记

3.2注册功能

//注册功能,外界传递一个User对象进来。我就在XML文档中添加一条信息

   publicvoidregister(Useruser){


   //获取XML文档路径!

   Stringpath=UserImplXML.class.getClassLoader().getResource("user.xml").getPath();

       


       try{

           //获取dom4j的解析器,解析XML文档

           SAXReadersaxReader=newSAXReader();

           Documentdocument=saxReader.read(path);


           //在XML文档中创建新的节点

           ElementnewElement=DocumentHelper.createElement("user");

           newElement.addAttribute("id",String.valueOf(user.getId()));

           newElement.addAttribute("username",user.getUsername());

           newElement.addAttribute("email",user.getEmail());

           newElement.addAttribute("password",user.getPassword());


           //日期返回的是指定格式的日期

           SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yy-MM-dd");

           Stringdate=simpleDateFormat.format(user.getBirthday());

           newElement.addAttribute("birthday",date);


           //把新创建的节点增加到父节点上

           document.getRootElement().add(newElement);


           //把XML内容中文档的内容写到硬盘文件上

           OutputFormatoutputFormat=OutputFormat.createPrettyPrint();

           outputFormat.setEncoding("UTF-8");

           XMLWriterxmlWriter=newXMLWriter(newFileWriter(path),outputFormat);

           xmlWriter.write(document);

           xmlWriter.close();


       }catch(DocumentExceptione){

           e.printStackTrace();

           thrownewRuntimeException("注册的时候出错了!!!");

       }catch(IOExceptione){

           e.printStackTrace();

           thrownewRuntimeException("注册的时候出错了!!!");

       }

   }

  • 我们也测试一下有没有错误!

@Test

   publicvoidtestRegister(){


       UserImplXMLuserImplXML=newUserImplXML();


       //这里我为了测试的方便,就添加一个带5个参数的构造函数了!

       Useruser=newUser(10,"nihao","123","sina@qq.com",newDate());


       userImplXML.register(user);

   }


  • 注意!测试的结果是在classes目录下的user.xml文件查询的!因为我们是用Test来测试代码,读取XML文件时使用的是类装载器的方法,在编译后,按照WEB的结构目录,XML文件的读写是在WEB-INF的classes目录下的!

60.jpg


  • DAO的实现已经开发完成了,接下来我们就对DAO的实现进行抽取。【当然了,也可以先写DAO再写DAO的实现】

62.jpg


④开发service层


service层的开发就非常简单了!上面已经说了,service层就是:将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑。简单来说:对web层提供所有的业务服务的

在逻辑代码不是非常复杂的情况下,我们可以没有service层的,这里还是演示一下吧!

publicclassUserServiceXML{

   

       //Service层就是调用Dao层的方法,我们就直接在类中创建Dao层的对象了

       UserDaouserImplXML=newUserImplXML();

   

       publicvoidregister(Useruser){

           userImplXML.register(user);

       }

   

       publicvoidlogin(Stringusername,Stringpassword){

   

           userImplXML.find(username,password);

       }

   }

  • 当然了,为了更好的解耦,也把它抽取成接口

63.jpg



目录
相关文章
|
4天前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
18 3
|
21天前
|
存储 安全 关系型数据库
后端技术:构建高效稳定的现代Web应用
【10月更文挑战第5天】后端技术:构建高效稳定的现代Web应用
42 1
|
1天前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
14 2
|
4天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
13 4
|
10天前
|
前端开发 安全 关系型数据库
PHP在Web开发中的应用及其优势###
【10月更文挑战第16天】 — 本文探讨了PHP在现代Web开发中的广泛应用及其显著优势。通过分析PHP的核心特性,如灵活性、易用性和广泛的应用支持,阐述了为何PHP成为众多开发者和公司的首选技术。文章还介绍了PHP与其他编程语言的比较,并展望了其未来的发展趋势。 ###
29 2
|
15天前
|
机器学习/深度学习 人工智能 算法
未来已来:探索量子计算在Web开发中的应用
在这篇文章中,我们将穿越技术的迷雾,一窥未来。量子计算,这一曾经只存在于理论中的技术,正逐渐走近现实,它的革命性潜力正在被探索其在Web开发中的潜在应用。本文将带你了解量子计算的基本概念,以及它可能如何重塑我们构建和交互Web应用的方式。准备好,让我们的想象力随着量子比特一起跳跃。
|
25天前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
39 3
|
26天前
|
缓存 前端开发 JavaScript
构建高性能Web应用:优化前端性能的策略
构建高性能Web应用:优化前端性能的策略
|
26天前
|
存储 缓存 NoSQL
构建高性能Web应用:缓存的重要性及其实现
构建高性能Web应用:缓存的重要性及其实现
|
27天前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
14 0