javaSE学习笔记Xpath简介与web服务器(8)

Xpath是一个独立的一个路径语言,主要的目的是为了查找路径中的元素。
那么DOM4J默认支持Xpath的路径查找。
常用的方法有以下的两种:
selectNodes(“xpath”)        ? 查询指定路径的所有的元素
selectSingleNode(“xpath”)    ? 查询指定路径的第一个元素
?    常用的Xpath路径写法
/AAA          指定从XML文档的根开始写路径
//BBB        指定从整个XML中搜索满足的元素名
/AAA/CCC/DDD/* 指定路径下所有的元素
//*            指定获取所有的元素
/AAA/BBB[1]  指定路径下的第一个元素,一定是以1开始的
/AAA/BBB[last()]  指定路径下的最后一个元素
//@id          指定要获取的属性元素
//BBB[@id]        指定带属性的元素
//BBB[@id=‘b1‘]    指定属性值的元素
//BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

案例二: 使用DOM4J+Xpath实现用户登陆和注册

代码实现:

1. 编写一个用于用户登陆的信息文件users_login.xml
<?xml version="1.0" encoding="UTF-8"?>
<users>
  <user name="jack" password="root"/>
</users>
2. 登陆的业务方法
// 提供一个用于登陆的方法
    public static User login(String name, String password, File file)
            throws Exception {
        Document doc = getDoc(file);
        Node node = doc.selectSingleNode("/users/user[@name=‘" + name
                + "‘ and @password=‘" + password + "‘]");
        User user = null;
        if (node != null) {
            String name_value = node.valueOf("@name");
            String password_value = node.valueOf("@password");
            user = new User(name_value, password_value);
        }
        return user;
    }
3. 注册的业务逻辑方法
// 提供一个业务逻辑存储一个User
    public static void registUser(User user,File file)throws Exception{
        Document doc = getDoc(file);
        Element root = doc.getRootElement();
        Element new_user = DocumentHelper.createElement("user")
.addAttribute("name", user.getName())
        .addAttribute("password", user.getPassword());
        root.add(new_user);
        // 将document对象持久化到文件
        XMLWriter writer = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(file),"UTF-8"));
        writer.write(doc);
        writer.close();
    }

比较: DOM VS SAX VS DOM4J+XPATH

DOM将XML文件以DOM树的方式装载进内存进行解析。Node、 Element、Document、Text、Attr等。

缺点: 不能解析大数据的XML文件。

优先: 对于XML可以进行任何操作。

SAX将XML的解析分为不同的时间段,因此需要创建开发者自己的事件处理器类。

startDocument()/endDocument  startElement()/endElement()  characater()

缺点: 只能获取元素。

优先: 采用事件机制速度快。

DOM4J+XPATH

DOM4J+XPATH结合了DOM和SAX各自的优势并摈弃了两者的缺点。

总结主来一条:优先使用DOM4J+XPATH

问题:
1. 使用DOM存储一个节点,但是xml文件中连同根元素都会消失。
   就是没有将DOM树写回XML文件。new DomSource(dom)
2. 在指定的位置之前插入元素。
   调用insertBefore()方法的时候应该调用的是直接父类的该方法。
总结
掌握各种解析XML的原理和思路。
DocumentBuilderFactory/DocumentBuilder    TtransformerFactory/ Ttransformer
SaxPaserFactory/SaxParser
SaxReader/XMLWriter/DocuementHelper/Docuement

Web服务器简介

Web服务器是一个安装了web服务器软件的计算机。Web服务器软件是可以对外提供访问自己管理的文件夹的资源的一个软件。

Web服务器软件主要的任务是获取用户的请求资源,根据资源的名字在自己管理的网站中查找资源并使用输入流读取到该资源数据,并以输出流的方式发送给客户端浏览器。Web服务器软件的底层采用的Socket编程。


Web 服务器软件


厂商


IIS


微软


Tomcat


Apache   开源的服务器


Web Logic


BEA


Web Sphere


IBM


JBoss


RedHat

1 Web的概念

Web即网页。所以要开发一个网站需要从开发网页开始。HTML+CSS+JavaScript

2  静态和动态的概念

静态网页即每次查看页面的源码如果不可变就是静态网页。

动态网页即每次查看页面的源码如果可变就是静态网页。

HTML+CSS+JavaScript+Flash    à 静态的

JSP、Servlet技术                                   à 动态的

3  软件结构的概念

软件结构就是软件软件后部署软件的一种方式。

CS结构: Client/Server  客户端/服务器   如: QQ

要下载安装客户端程序。而且数据需要发送给服务器。

缺点:升级

BS结构       Browser/Server 浏览器/服务器  如: Web QQ

不需要额外的下载客户端,只需要一个浏览器即可。

优点: 不需要安装且无需升级

网站就属于BS结构。瘦客户端程序。

Tomcat服务器

Tomcat是apache开源组织使用java语言开发的,因此运行的时候JRE。但是开发者可以直接配置JDK。

1.下载

http://www.apache.org   Tomcat

2.安装

直接解压(绿色版)

3. 配置

java_home=JDK的根目录

4. 测试

进入安装的bin目录àstartup.bat

打开浏览器输入http://127.0.0.1:8080/ 可见下图即可

时间: 2024-11-02 12:17:36

javaSE学习笔记Xpath简介与web服务器(8)的相关文章

学习笔记_svn简介

版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 可以简单理解: 版本控制工具:就是控制我们项目开发的代码,管理这些代码,使这些代码能够协调工作,形成一个完整的整体:可以上传代码,更新最新代码到本地: 具体做法: 三个人开发各自的代码,引入一台专门的服务器,SVN Server,一人开发代码,本地开发完直接上传到服务器(commit),SVN可以理解成代码数据库:不仅可以上

学习笔记_CVS简介

CVS - Concurrent Versions System(并发版本管理系统)是一个版本控制管理系统,它是SVN出现之前最为广泛使用的一个版本控制系统. CVS的优点就不多说了,总之没有它,早期的软件工程就基本无法实现,就无法凝聚广大程序员的力量.它在软件工程中的作用实在是无可比拟的. 一直到现今的版本控制的主流SVN出现之后,它才慢慢的逐步淡出我们的视线. 下载CVS服务器 网址为:<http://www.cvsnt.com/cvspro/>,下载CVSNT 并安装,当前使用的版本号为

javasE学习笔记:关键字super的使用

/* super 的作用: 1 . super可以在子类中引用父类的成员,通过 .的方式和属性.this相对应. 2. 在子类的构造方法中可以可使用super(参数列表)语句调用父类的构造方法 3. 注意: 子类的构造方法中一定要调用父类的构造方法.... */ javasE学习笔记:关键字super的使用,布布扣,bubuko.com

学习笔记_Ant简介

Ant,apache开源项目,基于Java的构建工具,是一个小程序.它通过自动完成所有的编译代码,运行测试以及 打包重新部署等繁琐费力的任务来帮助软件团队开发大程序: Ant的目标是自动完成所有的构建过程: 安装: 和安装JDK一样,在环境变量配置ANT_HOME: 然后在PATH加上%ANT_HOME%bin; 要求先有JDK环境,因为基于Java的构建工具,所以要先配置JDK: 配置好可以子啊控制台输入 ant -version 测试是否安装成功: 运行ant例子: 新建空文件夹: 控制台进

【安全牛学习笔记】Kali实战-Web渗透

1.动态web: 可以接受客户端提交的数据,动态交互数据,就会有漏洞的存在 2.web大致框架: (1)浏览器--->web服务器--->应用服务器--->数据库 (2)程序代码 3.http协议基础: 明文通信,没有内建的机密安全机制 https只能提高传输层安全,仍然可以截断信息 使用cookie,身份验证.服务器跟踪客户端根据cookie.客户端拿到的是SessionID,服务器是session. 4.http请求和响应: content-length:(可用于验证是否暴力破解成功

多线程编程学习笔记——编写一个异步的HTTP服务器和客户端

接上文 多线程编程学习笔记——使用异步IO 二.   编写一个异步的HTTP服务器和客户端 本节展示了如何编写一个简单的异步HTTP服务器. 1.程序代码如下. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Ta

JavaWeb学习笔记5--JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4046862.html [前言] JSP本身是JavaWeb中的知识,但是在学习Android网络时,必然要涉及到与服务器之间的交互,所以学一下JSP以及其他JavaWeb的内容还是很有必要的,至少能明白程序在访问服务器时,整个过程的原理. 其实,在学习Android之前,Java和JavaWeb

[原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Shiro学习笔记(5)——web集成

Web集成 shiro配置文件shiroini 界面 webxml最关键 Servlet 測试 基于 Basic 的拦截器身份验证 Web集成 大多数情况.web项目都会集成spring.shiro在普通web项目和spring项目中的配置是不一样的.关于spring-shiro集成,能够參考Shiro学习笔记(3)--授权(Authorization) 中的JSP标签授权部分演示样例代码 本次介绍普通的web项目,不使用不论什么框架. shiro配置文件(shiro.ini) 创建web项目.