xml(了解) ???xml介绍 ???????可扩展标记语言,类似html ???????xml的标签可以自定义 ???????宗旨:存储数据 ???????xml的作用: ???????????1.交换数据--不同语言之间 ???????????2.配置文件--项目开发和框架最常见的☆ ???书写规范 ???????xml必须有根元素(只有一个) ???????xml标签必须有关闭标签 ???????xml标签对大小写敏感 ???????xml的属性必须加引号 ???????特殊字符必须转义 > < & ???????空格/回车/制表符在xml中都是文本节点 ???????xml必须正确地嵌套 ???????我们将符合上述书写规则的XML叫格式良好的XML文档 ???xml的组成 ???????声明: ???????????作用:告诉计算机我是一个xml文件、 ???????????格式: ???????????????<?xml version=‘1.0‘ encoding=‘utf-8‘?> ???????????注意: ???????????????必须是xml文档第一行 ???????????????必须顶格写 ???????元素: ???????????格式: ???????????????????<xxx></xxx> ???????????????<xxx/> ???????????注意: ???????????????????xml元素必须遵循以下命名规则: ???????????????????名称可以含字母、数字以及其他的字符 ???????????????????名称不能以数字或者标点符号开始 ???????????????????名称不能以字符"xml"(或者XML、Xml)开始 ???????????????????名称不能包含空格 ???????????????????可使用任何名称,没有保留的字词 ???????属性: ???????????格式: ???????????????<xxx key=‘value‘/> ???????????注意: ???????????????属性值必须用引号 ???????注释: ???????????和html一样 ???????????<!-- ????????????????????????????--> ???????CDATA: ???????????在页面原样输出 ???????????格式: ???????????????<![CDATA[ ???????????????????原样输出的内容 ???????????????]]> ???xml的约束: ???????约束的作用: ???????????规定xml文档中可以出现哪些元素和属性,且规定了他们出场顺序了、 ???????约束的分类: ???????????DTD约束:struts hibernate ???????????SCHEMA约束:spring ???????DTD约束: ???????????DTD和xml的关联: ???????????????三种: ???????????????????内部关联: ???????????????????????格式:<!DOCTYPE 根元素 [语法]> ???????????????????外部关联--系统关联: ???????????????????????格式:在xml中写法 ???????????????????????????<!DOCTYPE 根元素 SYSTEM "dtd的路径"> ???????????????????外部关联--公共关联 ???????????????????????格式:在xml中写法 ???????????????????????????<!DOCTYPE 根元素 PUBLIC ?"DTD名称" "dtd的路径"> ???????????????????注意:dtd文件的后缀名为.dtd ???????????dtd的组成: ???????????????元素: ???????????????????????格式1:<!ELEMENT 元素名称 (内容)> ???????????????????格式2:<!ELEMENT 元素名称 类别> ???????????????????类别: ???????????????????????#PCDATA 元素的文本节点为字符串,不能出现元素 用的时候一般用()引起来 ???????????????????符号: ???????????????????????*:出现的次数>=0 ???????????????????????+:出现的次数>=1 ????????????????????????:出现的次数0|1 ???????????????????????|:或者 ???????????????????????():分组 ???????????????????????,:顺序 ???????????????属性: ???????????????????格式: ???????????????????????<!ATTLIST 元素名称 属性名称 属性类型 默认值> ???????????????????属性的类型: ???????????????????????ID:唯一 ???????????????????????CDATA:字符串 ???????????????????默认值: ???????????????????????#RUQUIRED:属性必须出现 ???????????????????????#IMPLIED:属性可选出现 ???????SCHEMA约束: ???????????一个xml可以出现多个schema约束,但是一个一个xml只能出现一个dtd约束 ???????????后缀名.xsd ???????????????a.xsd ?table ?width ?height ????????????????b.xsd ?table ?row ???col ???????????????????????????在一个xml文档中若出现以上情况,可以 通过名称空间解决。 ???????????名称空间的写法: ???????????????xmlns=‘aaa‘ ???--指的是a.xsd ???????????????xmlns:别名=‘bbb‘ ???--指的是b.xsd ???????????????例如: ???????????????????xmlns:b=‘bbb‘ ???????????????<table> 代表来自a.xsd文件中 ???????????????<b:table> 代表的是来自b.xsd文件 ???????????????注意: ???????????????????????没有别名的名称空间只能出现一个。 ???????????????作用:确定元素的约束来自哪个约束文档 ???????????????????????和xml文件的关联: ???????????????1.编写xsd文件。 xsd文件本质也是一个xml文件,只是后缀名为.xsd ???????????????????targetNamespace="http://www.example.org/b1" --给自己的约束文件起个名称,方便xml文件使用。 ???????????????????注意: ???????????????????????????名称可以自定义 ???????????????????????建议使用唯一的,域名/自定义的内容 ???????????????????????targetNamespace="http://www.example.com/taotao" ????????????????????再次确定根元素是哪个 ???????????????2.根据xsd编写xml ???????????????????首先写根元素 ???????????????????然后添加约束 ???xml的解析: ???????常用的解析方式: ???????????DOM:一次性将xml文档加载到内存中,形成一棵树,可以对节点进行crud操作 ???????????SAX:逐行解析。只使用于R操作。查询效率高 ???????常用的解析技术: ???????????JAXP(SUN) JDOM DOM4J pull xstream ???????重点:dom4j的查询操作 ???????使用步骤: ???????????1.导入jar包(解压zip包 在项目中导入dom4j-1.6.1.jar) ???????????2.xml读取到内存 ???????????????SAXReader reader=new SAXReader(); ???????????????Dodument doc=reader.read(xml文件路径); ???????????3.先获取根节点 ???????????????Element rootEle=doc.getRootElement(); ???????????4.通过根节点获取其他的节点 ???????????????常用的方法: ???????????????????List<Element> bookList=rootEle.elements(); ???????????????????遍历list获取到每一个bookEle ???????????????????????String value=bookEle.attributeValue("category"); ???????????????????????String text=booEle.elementText("author"); ???????????????????获取子元素 ???????????????????????Element title=bookEle.element("title"); ???????????????扩展方法(了解) ???????????????????Iterator<Element> i=rootEle.elementIterator(); --获取的每一个子节点 ???????????????????获取其他的节点: ???????????????????????属性:String value=book.attribure("category").getValue(); ???????????????????????文本:String text=book.element("title").getText(); ???xpath查询操作 ???????使用步骤: ???????????1.导入jar包 (dom4j的jar包和jaxme-api-0.3.jar) ???????????2.获取document ???????????????Dodument doc=new SAXReader().read(xml路径); ???????????3.可以通过匹配表达式获取其他节点 ???????????????常用方法: ???????????????????list selectNodes(匹配表达式):返回多个 ???????????????????element selectSingleNode(匹配表达式):返回第一个 ???????????????tomcat(☆) ???web的相关概念: ???????web: ???????????单词:网络资源 ???????????web资源分类: ???????????????静态的web资源:内容不发生改变的资源 ???????????????动态的web资源:内容可能发生改变的资源 ???????????资源的开发技术: ???????????????静态的开发技术:html css ???????????????动态的开发技术:servlet jsp ????????软件的架构: ???????????c/s:客户端和服务器 例如:qq feiq ???????????b/s:浏览器和服务器 例如:网页游戏 网页qq ????????????????????web通信基于请求响应机制。 ???????????常见web服务器: ???????服务器:硬件服务器和软件服务器 ???????常见的web服务器: ???????????服务器名称 ???????公司 ???????特点 ???????????weblogic ??????oracle ???大型收费web服务器,支持javaee所有规范 ???????????websphere ???????IBM ???????大型收费web服务器,支持javaee所有规范 ???????????tomcat ???????????apache ???中小型免费web服务器,支持servlet和jsp规范 ???????????下载:apache ???安装:解压zip文件 ???运行:D:\apache-tomcat-7.0.77\bin\startup.bat 双击 ???测试:localhost:8080 浏览器出现汤姆猫 ???常见问题: ???????JAVA_HOME配置 ???????端口冲突: ?????????a) ???????????修改tomcat安装目录下conf文件夹中server.xml ???????????<Connector port="8080" protocol="HTTP/1.1" ???????????connectionTimeout="20000" ???????????redirectPort="8443" useBodyEncodingForURI="true" IEncoding="utf-8" URIEncoding="UTF-8"/> ???????????有时候,会把端口改成80 ?????????b) ???????????在cmd打开的窗口中输入 netstat -aov ???关闭: ???????方式1:关闭cmd窗口 ???????方式2:执行命令 shutdown.bat ?????????方式3:ctrl+c ????????????tomcat目录结构: ???????bin:存放可执行程序的目录 ???????conf:存放配置文件的目录 ???????lib:存放tomcat运行和项目运行所需的jar包 ???????logs:存放日志文件的目录,主要查看catalina ???????temp:临时文件 ???????webapps: ☆项目存放的目录 ???????work:☆jsp运行时产生的java文件和字节码文件 ???????????web项目目录结构: ???????myweb(目录) ???????????| ???????????|---WEB-INF(目录:通过浏览器访问不到,但是可以通过java程序访问到。) ???????????| ?????| ???????????| ?????|--lib(目录:存放项目所用的jar包) ???????????| ?????|--classes(目录:存放java文件对应的class文件) ???????????| ?????|--web.xml(文件,项目的核心配置文件) ???????????| ???????????|---html js css ???????????| ???????????????web项目部署(发布项目):也叫虚拟目录映射 ???????方式1.将项目放在tomcat/webapps下即可(最常用) ???????????????方式2.修改tomcat/conf/server.xml 在125行左右 host标签下,添加如下代码(不推荐) ???????????<Context path="/项目名" docBase="项目的路径"/> ???????????例如: ???????????????????<Context path="/my" docBase="d:/myweb"/> ???????????访问路径: ???????????????localhost:8080/项目名/资源 ???????????????例如:localhost:8080/my/html/1.html ???????????????????????方式3.在tomcat/conf/catalina/localhost下新建一个xml文件,文件的名称即为项目名称 ???????????先写xml文件,添加下面的代码 ???????????????<Context docBase="项目的路径"/> ???????????????例如: ???????????????????????<Context docBase="d:/myweb"/> ???????????????????文件名称为m.xml ???????????????访问的路径: ???????????????????localhost:8080/m/html/1.html ???tomcat和eclipse整合 ???????war包: ???????特点:tomcat可以自动解压war包 ???????后缀名:.war包 ???????方式1:通过eclipse ???????方式2:进入项目目录,选择所有文件,添加到压缩文件,选择zip格式,将后缀名改成.war包 ???????方式3:在cmd中进入项目目录,运行 jar -cvf 名称 .war */ ???http(理解) ???超文本传输协议。 ???http协议的默认端口:80 ???http是一个无状态的协议。 ???请求: ???????浏览器发送到服务器 ???????组成部分:请求行 请求头 请求体 ???????请求行:请求信息的第一行 ???????????格式:请求方式 ?请求的资源路径 ?协议/版本 ???????????例如:GET/javaee_day08/1.html HTTP/1.1 ???????请求头: ???????????格式:key:value ???????????重点: ???????????????Cookie ????????????????Referer(防盗链) ???????????????IF-Modified-Since Accept-Encoding ???????请求体:和请求头之前有一个空行 ???????????只有post请求才有请求体 ???????????get:localhost/web?username=zhangsan&password=1234 ???????????post:localhost/web ???????????????????请求体中就会出现:username=zhangsan&password=1234 ???????????????????响应: ???????服务器返回浏览器 ???????组成部分:响应行 ?响应头 ?响应体 ???????响应行: ???????????响应信息第一行 ???????????格式:协议/版本 ?状态码 ?状态码的说明 ???????????例如:HTTP/1.1 200 OK ???????????状态码: ???????????????1xx:正在处理 ???????????????2xx:响应成功 ???????????????3xx:还需进一步处理 ???????????????????常见的3xx: ???????????????????????302:跳转 ???????????????????????304:没有修改,读缓存 ???????????????4xx:客户操作错误 ???????????????????常见的404: ???????????????5xx:服务器错误 ???????????????????常见的500(代码错误) ???????响应头: ???????????格式:key:value ???????????重点: ???????????????Set-Cookie ???????????????Location:跳转方向 ???????????????Content-Type ???????????????Refresh:刷新 ???????????????Content-Disposition:上传下载 ???????响应体:响应体和响应头之间有一行空行 ???????????????就是页面要显示的内容 ???????????????????????????????
1.xml http
原文地址:https://www.cnblogs.com/syj1993/p/8419197.html