一 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

最新文章

  1. WCF学习之旅—WCF第二个示例(七)
  2. MIT 6.828 JOS学习笔记3. Exercise 1.2
  3. iOS开发Facebook POP动效库使用教程
  4. git上解决代码冲突
  5. 小学生之Log4j使用教程
  6. easyui获取日期datebox中的值
  7. linux select 网络模型
  8. 爬取豆瓣电影储存到数据库MONGDB中以及反反爬虫
  9. Mybatis源码之Statement处理器PreparedStatementHandler(五)
  10. 在线SQL
  11. supervisor支持python虚拟环境venv
  12. SetProcessWorkingSetSize减少内存占用
  13. 猪年设计素材:一波免费猪猪icon已为你备好
  14. EDK II之USB主控制器(EHCI)驱动的实现框架
  15. EF事务处理封装公用
  16. 十天精通CSS3(1)
  17. caffe 中base_lr、weight_decay、lr_mult、decay_mult代表什么意思?
  18. java将list转为树形结构的方法
  19. 20145226夏艺华 《Java程序设计》第2周学习总结
  20. linux菜鸟笔记

热门文章

  1. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL
  2. js--单选按钮赋值
  3. 洛谷P3167 通配符匹配 [CQOI2014] 字符串
  4. python练习题-day16
  5. jquery对复选框(checkbox)的操作(精华)
  6. 在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式
  7. GO格式化打印
  8. ASP.NET Core SignalR
  9. Python数据分析Numpy库方法简介(四)
  10. ACM总结——2017ACM-ICPC北京赛区现场赛总结