一 xml介绍:
xml:可扩展性的文件
功能:
1、作为框架的配置文件
2、方便在网络中传输数据
<a>
<b></b>
<c></c>
</a>
xml和html的区别:
1、xml的标签都是自定义的,html的标签是预定义
2、xml的语法比html严谨
3、xml是用于存储数据的,html是展示数据的
基本语法:
1、文件以.xml结尾
2、xml的文件第一行,必须是文档声明(固定的)
3、xml中只能有一个根标签
4、属性的值需要用引号引起来
5、所有的标签必须正常关闭
6、xml区分大小写
例如:描述一个人
<person id="1">
<name>coco</name>
<age>12</age>
</person>
xml的解析:
解析方式:
sax:一行一行解析
dom:一次性将文档的内容加载到内存中,形成dom树
解析技术:
JAXP,JDom,jSoup(html),dom4j
具体见代码:
1.dom4j解析:
public class TestDemo {
//用来解析xml
@Test
public void test1() throws DocumentException {
//1、创建解析对象 SAXReader
SAXReader reader = new SAXReader();
//2、创建文件
File file = new File("person");
//3、将文件读取到内存中形成dom树
Document document = reader.read(file);
//4、获取根节点
Element rootElement = document.getRootElement();
//获取名字
System.out.println(rootElement.getName());
//获取所有的子节点
List<Element> list = rootElement.elements();
for ( Element e: list
) {
System.out.println(e.getName()+"------------"+e.getText());
}
//根据名字获取子节点
Element name = rootElement.element("name");
System.out.println(name.getText());
//根据属性名,获取属性对象
Attribute id = rootElement.attribute("id");
System.out.println(id.getName());
System.out.println(id.getText());
}
}
2.JSoup解析:
public class TestDemojSoup {
//jSoup用来解析xml
@Test
public void test1() throws IOException {
//1、创建解析对象
//2、创建文件
//3、读取dom对象
Document document = Jsoup.parse(new File("person"), "utf-8");
Element element = document.getElementById("1");
System.out.println(element.html());//获取带格式的文本
System.out.println(element.text());//获取纯文本
}
@Test
public void test2() throws IOException {
Document parse = Jsoup.parse(new URL("http://www.baidu.com"), 5000);
System.out.println(parse);
}
@Test
public void test3() throws IOException, XpathSyntaxErrorException {
//1、获取document对象
Document document = Jsoup.parse(new File("person"), "utf-8");
//2、根据document对象创建JXDocument对象
JXDocument jxDocument = new JXDocument(document);
//3、根据xpath语法进行查询
//3.1 查询所有的person标签
// List<JXNode> jxNodes = jxDocument.selN("//person");
// for (JXNode jxNode: jxNodes
// ) {
// System.out.println(jxNode);
// }
//获取所有person的name
// List<JXNode> jxNodes = jxDocument.selN("//person/name");
// for (JXNode jxNode: jxNodes
// ) {
// System.out.println(jxNode);
// }
//获取所有person的name的带有属性id的
// List<JXNode> jxNodes = jxDocument.selN("//person/name[@id]");
// for (JXNode jxNode: jxNodes
// ) {
// System.out.println(jxNode);
// }
//获取所有person的name的带有属性id的 并且id值是"a"
List<JXNode> jxNodes = jxDocument.selN("//person/name[@id='a']");
for (JXNode jxNode: jxNodes
) {
System.out.println(jxNode);
}
}
}
二 tomcat介绍:
服务器:安装了服务器软件的计算机
服务器软件:接收用户的请求,处理请求,做出响应
web服务器:
webloginc:oracle公司的,大型的,收费的
JBOSS:JBOSS公司的,大型的,收费的
webSphere:IBM公司的,大型的,收费的
tomcat:apache基金组织,中小型,免费的
tomcat:
1、下载
2、安装:解压即可
注意:解压目录不要有中文和空格
3、卸载:直接删除文件夹
?????tomcat目录结构
bin:可执行文件
conf:配置文件
lib:依赖jar包
logs:日志文件
temp:临时文件
webapps:存放我们的web项目
work:存放的运行时数据(class文件)
4、启动:
bin/startup.bat
验证:在浏览器中输入localhost:8080(127.0.0.1:8080)
如果成功看见猫咪
启动有可能出现的问题:
1、黑窗口一闪而过:
JAVA_HOME是否配置正确
2、启动报错:
端口占用
1、关闭占用的端口
百度;
2、修改自身的端口号
conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
5、关闭
1、shutdown.bat
2、ctrl+c
3、直接X
6、部署:
1、直接向项目放入webapps
简化:先将项目打包成war包(压缩文件的格式),直接将war包放入webapps
war会自动解压
2、配置虚拟路径
conf/server.xml中 的<Host>中配置一段代码
<!--
docBase:项目的真实路径
path:虚拟路径
-->
<Context docBase="C:UsersAdministratorDesktopweb" path="/aaa"/>
3、在confCatalinalocalhost 创建一个任意名称的xml
<Context docBase="C:UsersAdministratorDesktopweb"/>
将tomcat整合到idea中:
动态web项目:
目录结构:
----根目录
---WEB-INF目录:
-web.xml;web项目的核心配置文件
-classes:存放字节码
-lib:存放jar