XML
可扩展标记语言 EXtensible Markup Language
传输 和 存取数据.
软件的配置文件.
XML文档声明
<?xml 属性名=”属性值” 属性名=”属性值” ...?>
version :必须的. 使用”1.0”
encoding :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码.
standalone :描述XML文档是否需要依赖其他的文件.
XML的解析方式
DOM解析:DOM:Document Object Model.
SAX解析:Simple Api for XML.
区别
针对这两种解析的方式,不同的公司提供了不同的API的实现.
JAXP :SUN公司提供的一套XML的解析的API.
JDOM :开源组织提供了一套XML的解析的API-jdom.
DOM4J :开源组织提供了一套XML的解析的API-dom4j.
pull :主要应用在Android手机端解析XML.
XPath:
dom4j支持XPath的jar包.
* jaxen-1.1-beta-6.jar
dom4j的XPath支持的API:
* List document.selectNodes(String xPath);
* Node document.selectSingleNode(String xPath);
代码:
@Test
/**
* DOM4J的XPath的写法:
*/
public void demo2() throws Exception{
// 创建解析器:
SAXReader reader = new SAXReader();
// 解析XML返回Document对象.
Document document = reader.read("xml/demo1.xml");
List<Node> list = document.selectNodes("//name");
for (Node node : list) {
Element element = (Element) node;
System.out.println(element.getText());
}
}
XML的约束的种类及区别?
DTD 和 Schema :
区别:
1.DTD语法是自成一体的.Schema语法就是XML的语法.
2.Schema的语法就是XML的语法所以更容易被解析器所解析.
3.Schema支持名称空间.
4.Schema有比DTD更加强大的语义和语法的约束.
DTD外部引入方式
一种本地DTD:
<!DOCTYPE persons SYSTEM "unknown.dtd">
一种网络DTD:
<!DOCTYPE persons PUBLIC "//UNKNOWN/" "unknown.dtd">
<?xml version="1.0" encoding="UTF-8"?>
名称空间:一个XML只能引入一个DTD约束文档.使用了Schema约束XML文档,一个XML可以引入多个Schame的约束!!!
如果再多个Schema文档中定义了相同的属性名称 该怎么办?
名称空间类似于java中的package.通过名称空间区分 标签或属性来自于哪个文档的!!!通常名称空间唯一的不重复的即可.一般情况下使用一个URL地址表示一个名称空间.
xmlns :xml name sapace .代表当前的文档应用的名称空间.
targetNameSpace :目标名称空间.
elementFormDefault :
Tomcat
C/S架构的软件:
Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风...
优点:效果炫,一部分代码写到客户端(速度快).
缺点:服务器端更新,客户端都需要更新.
B/S架构的软件:
Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷...
优点:服务器端更新,客户端浏览器不需要进行更新.
缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大.
* 效果:使用HTML5,CSS3可以做出很炫效果.
* 服务器端压力:搭建服务器的集群.而且还有AJAX技术.
服务器
硬件:其实就是一台配置很高的电脑.
软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器.
WEB动态资源目录结构
website
|-----静态资源
|-----WEB-INF
|-----web.xml :必须的
|-----classes :可选的
|-----lib :可选的
Tomcat的目录结构
bin :tomcat的执行的文件.
conf :tomcat的配置文件.
lib :tomcat运行的需要的jar包.
logs :tomcat的运行的日志文件.
temp :tomcat产生临时文件存放的路径.
webapps :tomcat发布的web项目的路径.
work :tomcat运行JSP的时候,JSP翻译成Servlet的代码存放的路径.
发布一个WEB项目到Tomcat中
配置tomcat的虚拟路径-推荐
在tomcat/conf/Catalina/localhost/xxx.xml
配置<Context docBase="C:/website"/>
xxx作为虚拟路径的名称.
Servlet
HTTP协议:用来规定浏览器与服务器之前需要遵守的规则.
HTTP协议的作用:规范浏览器和服务器之间的数据传递.
HTTP协议的版本:
1.0 :每次响应后即刻关闭了连接.
1.1 :现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断
HTTP协议的详解
? 请求部分
* 请求行
* 提交方式:
* 提交方式有很多,常用的GET和POST:
* GET和POST的区别:
* GET的提交的参数会显示到地址栏上,而POST不显示.
* GET往往是有大小限制的,而POST没有大小的限制.
* GET没有请求体,而POST有请求体.
* 提交路径:
* 协议版本:
* 请求头
* 都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
* User-Agent :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.
* Referer :代表的是网页的来源. --- 防盗链.
* If-Modified-Since :通常与响应中的头Last-Modified一起使用查找本地缓存.
* 请求体
* 就是POST提交方式的提交的参数.
? 响应部分
* 响应行:
* 协议版本
* 状态码 :
* 200 :成功
* 302 :重定向
* 304 :查找本地缓存
* 404 :资源不存在
* 500 :服务器内部错误
* 状态码描述
* 响应头:键值对,一般一个key对应一个value,也有一个key对应多个value.
* Last-Modified :与请求中的If-Modified-Since一起使用查找本地缓存.
* Content-Dispostion :文件下载的使用使用的一个头信息.
* Location :重定向的跳转的路径.
* Refresh :定时刷新/定时跳转.
* 响应体:显示浏览器的页面的内容.
Servlet:就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.用来处理从客户端浏览器发送的请求,并且可以对请求作出响应
Servlet的入门
编写类:
public class ServletDemo1 implements Servlet{
@Override
/**
* 为用户处理请求和响应的方法.
*/
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.getWriter().println("Hello Servlet...");
}
}
配置:
<!-- 配置Servlet -->
<servlet>
<!-- Servlet的名称 -->
<servlet-name>test1</servlet-name>
<!-- SErvlet的全路径 -->
<servlet-class>com.itheima.a_servlet.ServletDemo1</servlet-class>
</servlet>
<!-- Servlet的映射 -->
<servlet-mapping>
<!-- Servlet的名称 -->
<servlet-name>test1</servlet-name>
<!-- Servlet的访问路径 -->
<url-pattern>/ServletDemo1</url-pattern>
</servlet-mapping>
|
|