xml和tomcat介绍
一 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:\Users\Administrator\Desktop\web" path="/aaa"/>
3、在\conf\Catalina\localhost 创建一个任意名称的xml
<Context docBase="C:\Users\Administrator\Desktop\web"/>
将tomcat整合到idea中:
动态web项目:
目录结构:
----根目录
---WEB-INF目录:
-web.xml;web项目的核心配置文件
-classes:存放字节码
-lib:存放jar
最新文章
- WCF学习之旅—WCF第二个示例(七)
- MIT 6.828 JOS学习笔记3. Exercise 1.2
- iOS开发Facebook POP动效库使用教程
- git上解决代码冲突
- 小学生之Log4j使用教程
- easyui获取日期datebox中的值
- linux select 网络模型
- 爬取豆瓣电影储存到数据库MONGDB中以及反反爬虫
- Mybatis源码之Statement处理器PreparedStatementHandler(五)
- 在线SQL
- supervisor支持python虚拟环境venv
- SetProcessWorkingSetSize减少内存占用
- 猪年设计素材:一波免费猪猪icon已为你备好
- EDK II之USB主控制器(EHCI)驱动的实现框架
- EF事务处理封装公用
- 十天精通CSS3(1)
- caffe 中base_lr、weight_decay、lr_mult、decay_mult代表什么意思?
- java将list转为树形结构的方法
- 20145226夏艺华 《Java程序设计》第2周学习总结
- linux菜鸟笔记
热门文章
- [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL
- js--单选按钮赋值
- 洛谷P3167 通配符匹配 [CQOI2014] 字符串
- python练习题-day16
- jquery对复选框(checkbox)的操作(精华)
- 在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式
- GO格式化打印
- ASP.NET Core SignalR
- Python数据分析Numpy库方法简介(四)
- ACM总结——2017ACM-ICPC北京赛区现场赛总结