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:上传下载
响应体:响应体和响应头之间有一行空行
就是页面要显示的内容