*1 dom4j解析器
  1)CRUD的含义:CreateReadUpdateDelete增删查改
  2)XML解析器有二类,分别是DOM和SAX。
a)DOM一次性将整个XML文件读到内存,形成一个倒状的树形结构
     
  b)SAX多次将整个XML文件读到内存
     
 
c)Document对象代表XML文件在内存中的映像 
  3)常用的API如下:
SAXReader saxReader = new SAXReader();
SAXReader是dom4j的核心类(需要添加架包)
Document document = saxReader.read("*.xml")
Document.getRootElement()
Element.getName()
Element.elements():取得该元素下的所有直接子元素
 
Element.elementText():从一个元素导航到另一个元素且取出该元素的文本
Element.element("车牌") :从一个元素导航到另一个元素
Element.attributeValue("出产时间"):取得一个元素对应的属性
Element.addElement("单价").setText("40"):添加新元素,同时设置该元素文本的值
OutputFormat format =
OutputFormat.createPrettyPrint():使用缩格形式写XML文件
XMLWriter xmlWriter = new XMLWriter(os,format):构造XML写入器
xmlWriter.write(document):将内存中的document对象写入硬盘
firstCarElement.remove(firstCarPriceElement):从直接父元素删除直接子元素
//firstCarPriceElement.getParent().remove(firstCarPriceElement):从直接父元素删除直接子元素

*2 基于dom4j的xpath技术
 
1)能够在xml文件中,快速定位需要元素,无需从根元素一个一个的导航到需要的子元素
Document.selectNodes():取得所有符合xpath格式的元素
Document.selectSingleNode():取得所有符合xpath格式的元素的第一个元素
Node类型是Element/Text/Attribute/Document/...类型的父接口
带有参数的XPATH
     String
xpath = "//user[@username='"+username+"' and
@password='"+password+"']";
Element element = (Element)
document.selectSingleNode(xpath);
XML:
     
   
  
3 简单工厂设计模式
 
1)目的就是统一管理访问层的所有Dao,让Service在Dao的处理上相对独立
 
2)引用DaoFactory来管理所有的具体Dao,并采用单例模式限制DaoFactory的个数

 
4 分层结构设计思想
 
1)将各个不同功能的代码块,分离出来,避免不同功能的代码耦合,为程序扩展和维护提供方便。 


*5 案例
  1)以分层思想,模拟用户登录
  2)通过配置文件解析/反射/运行某个类的方法
  3)分层结构的学员信息案例

6 SAX解析器 
  1)sun公司提供的一个基于事件的xml解析器
 
2)SAXParser是SAX解析器的核心类,在使用过程中,需要一个SAX处理器,该处理器必须扩展DefaultHandler
 
3)SAX解析器在解析XML文件时,会根据XML文件此时的状态,即开始标签,结束标签,调用SAX处理器对应的方法
 
4)SAX解析器在解析XML文件时,自动导航,无需像dom4j一样,人为导航
  5)SAX解析器会将空白字符当作一个有效字符对待

   代码:
     
     
    //创建SAX解析器工厂
SAXParserFactory factory =
SAXParserFactory.newInstance();
//创建SAX解析器
SAXParser saxParser = factory.newSAXParser();
//加载xml文件
saxParser.parse(
new File("src/cn/itcast/xml/sax/car.xml"),
new MyHandler());
必须扩展class MyHandler extends DefaultHandler{
public void startDocument();
public void endDocument();
public void startElement();   根据需求选择方法
public void endElement();
public void characters();
  

Java-Web总结03的更多相关文章

  1. Java开发工程师(Web方向) - 03.数据库开发 - 第1章.JDBC

    第1章--JDBC JDBC基础 通过Java Database Connectivity可以实现Java程序对后端数据库的访问 一个完整的数据库部署架构,通常是由客户端和服务器端两部分组成 客户端封 ...

  2. [原创]java WEB学习笔记03:使用eclipes开发javaWEB项目

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. Java Web之会话技术

    客户端与服务器通信过程中,会产生一些数据.比如,A和B分别登陆了某宝购物网站,A买了一个Android手机,B买了一个iPhone手机,当结账时,web服务器需要分别对用户A和B的信息分别保存.根据J ...

  4. Java Web services: WS-Security with Metro--referenc

    As you know from "Introducing Metro," the reference implementations of the JAXB 2.x data-b ...

  5. Java Web 前端高性能优化(二)

    一.上文回顾 上回我们主要从图片的合并.压缩等方面介绍前端性能优化问题(详见Java Web 前端高性能优化(一)) 本次我们主要从图像BASE64 编码.GZIP压缩.懒加载与预加载以及 OneAP ...

  6. Gradle构建Java Web应用(转)

    转自:http://www.blogjava.net/jiangshachina/archive/2014/02/03/409285.html 本文是发布在java.net上的一篇摘自于<Gra ...

  7. Java Web项目(Extjs)报错四

    1.Java Web项目(Extjs)报错四 具体报错如下: usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ...

  8. 初学Java Web(9)——学生管理系统(简易版)总结

    项目开始时间:2018年4月8日14:37:47 项目完成时间:2018年4月9日10:03:30 技术准备 这个项目是自己用于巩固 J2EE 相关知识的练手项目,非常简单,但是相关的功能却非常实用, ...

  9. dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器

    # dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器 #环境centos 7.4 docker 18.03.0-ce # nuxus,创建maven本地源(可 ...

  10. Java Web 高性能开发,第 1 部分: 前端的高性能

    Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.所有 Web 的思想都是通用的,它们也可以运用到 Java Web.这一系列 ...

随机推荐

  1. 《Java多线程编程核心技术》读后感(十七)

    使线程具有有序性 正常情况下,线程在运行时多个线程之间执行任务的时机时无序的.可以通过改造代码的方式使它们运行具有有序性 package Seven; public class MyThread ex ...

  2. Elasticsearch检索分类详解

    前言 Elasticsearch中当我们设置Mapping(分词器.字段类型)完毕后,就可以按照设定的方式导入数据. 有了数据后,我们就需要对数据进行检索操作.根据实际开发需要,往往我们需要支持包含但 ...

  3. 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器

    在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...

  4. CI框架中,扩展验证码类。

    使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...

  5. Laravel框架之CSRF防跨站攻击

    laravel框架的csrf防跨站攻击,简单的意思就是说为了防止别人自己写表单非法提交,非法绕过前台的验证,直接将数据往后台执行. 一般的网站如果没有这些安全措施,比较容易被攻击.当然了也还要有其他的 ...

  6. VMware S/4 HANA OP 1511虚拟机下载,64G内存限制解决方案

    http://www.itpub.net/thread-2057212-1-1.html S4 HANA OP 1511 Scale Out

  7. debian linux中文桌面系统安装

    一.基本系统安装 1 .安装光盘:可以到http://debian.cn99.com去下载ISO,我是之前从官方网站下载的.一只载第一张光盘即可.用NERO烧录成光碟. 2.将安装光盘放驱,并在BIO ...

  8. time元素 pubdate属性

    time元素和pubdate属性 https://blog.csdn.net/ziy10231207/article/details/51883397

  9. ue4 character 物理测试

    charactor里 CapsuleComponnet Mesh CharacterMovement 3个组件里有有物理开关 目前看Mesh的Simulate Physics+Enable Gravi ...

  10. DOTween Sequence 使用图解

    http://blog.csdn.net/jiejieup/article/details/41521577 最近在使用DOTween制作一些动画过渡的内容,发现非常好用,使用Sequence类可以方 ...