Web基础了解版04-XML-Tomcat
Posted open-ing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web基础了解版04-XML-Tomcat相关的知识,希望对你有一定的参考价值。
XML
-
-
XML 的设计宗旨是传输数据,而非显示数据。
-
XML的使命,就是以一个统一的格式,组织有关系的数据。为不同平台下的应用程序服务,独立于软件和硬件的信息传输工具。
-
XML相较于HTML,语法更加严格。
文档声明
-
version属性指定XML版本,固定值是1.0。
-
必须在文件的第一行书写文档声明。
-
-
encoding指定的字符集,是告诉解析器使用什么字符集进行解码,而编码是由文本编辑器决定的
-
通常的写法:<?xml version="1.0" encoding="utf-8" ?>
-
这样就要求保存文件时,必须用utf-8编码保存。此时要求XML文档的作者确认当前编辑器保存文档的编码方式。
语法规则
① XML声明要么不写,要写就写在第一行,并且前面没有任何其他字符,并且必须严格遵循语法
② 只能有一个根标签,所有的其他标签都必须声明在根标签内部
③ 标签必须正确结束,不能交叉嵌套
⑤ 严格区分大小写
⑥ 开始标签中,可以自定义添加属性。但,如果有属性就必须有值,且必须加引号
⑦ 标签不能以数字开头
⑧ 注释不能嵌套, 注释采用:
⑨ XML中可以使用HTML中的转义字符
XML实体中不允许出现"&","<",">"等特殊字符,否则XML语法检查时将出错,请使用转义字符
CDATA区
-
当XML文档中需要写一些程序代码、SQL语句或其他不希望XML解析器进行解析的内容时,就可以写在CDATA区中
-
XML解析器会将CDATA区中的内容原封不动的输出
-
CDATA区的定义格式:<![CDATA[…]]>
① 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
② 处理指令必须以 <? 作为开头,以 ?> 作为结尾,XML声明语句就是最常见的一种处理指令。
例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用xsl文件显示xml文档内容。
③ XSL对于XML来说就相当于CSS对HTML一样,XSL是XML的文件样式。
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。
-
-
Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
-
dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件都采用dom4j,例如Hibernate。
-
使用dom4j开发,需导入dom4j相应的jar包dom4j-1.6.1.jar。所以使用第一步:导包!
-
//1、创建解析器对象 SAXReader reader = new SAXReader(); //2、使用解析器将xml文件转换为内存中的document对象 Document document = reader.read("teachers.xml"); //相对在项目根路径下查找xml文件 //3、通过文档对象可以获取文档的根标签 Element rootElement = document.getRootElement(); //4、根据根标签获取所有的根标签的子标签集合 List<Element> elements = rootElement.elements(); //5、遍历集合中的标签,并将所有的数据解析出来 for (Element element : elements) { //每次遍历就代表一个teacher信息 System.out.println("正在遍历的标签名:"+element.getName()); System.out.println("正在遍历标签的id属性值:"+element.attributeValue("id")); //获取teacher的子标签的内容 String tname = element.elementText("tname"); System.out.println("tname:"+tname); String age = element.elementText("tage"); System.out.println("tage:"+age);
}
修改
//添加一个新的student节点 Element newEle = rootElement.addElement("teacher"); //创建一个良好的xml格式 OutputFormat format = OutputFormat.createPrettyPrint(); //写入文件 XMLWriter xmlWriter = new XMLWriter(new FileWriter("teachers.xml"),format); xmlWriter.write(document); xmlWriter.close();
新建
//1.创建文档 Document document = DocumentHelper.createDocument(); //2.添加根元素 Element root = document.addElement("teachers"); //3.添加元素节点 Element tcEle = root.addElement("teacher"); Element tcEle2 = root.addElement("teacher");
-
-
XPath通过元素和属性进行查找,
说明 | |
---|---|
/AAA | 选择根元素AAA |
/AAA/CCC | 选择AAA下的所有CCC子元素 |
/AAA/DDD/BBB | 选择AAA的子元素DDD的所有BBB子元素 |
//BBB | 选择所有BBB元素 |
//DDD/BBB | 选择所有父元素是DDD的BBB元素 |
/AAA/CCC/DDD/* | 选择所有路径依附于/AAA/CCC/DDD的元素 |
/*/*/*/BBB | 选择所有的有3个祖先元素的BBB元素 |
//* | 选择所有元素 |
/AAA/BBB[1] | 选择AAA的第一个BBB子元素 |
/AAA/BBB[last()] | 选择AAA的最后一个BBB子元素 |
//@id | 选择所有元素的id属性 |
//BBB[@id] | 选择有id属性的BBB元素 |
//BBB[@name] | 选择有name属性的BBB元素 |
//BBB[@*] | 选择有任意属性的BBB元素 |
//BBB[not(@*)] | 选择没有属性的BBB元素 |
//BBB[@id=‘b1‘] | 选择含有属性id且其值为‘b1‘的BBB元素 |
//BBB[@name=‘bbb‘] |
使用
① 导包:jaxen-1.1-beta-6.jar
③ 获取所有符合条件的节点
-
document.selectNodes(String xpathExpression) :返回List集合
-
举例:document.selectNodes("/students/student")
-
-
document.selectSingleNode(String xpathExpression) :获取符合条件的单个节点。即一个Node对象。如果符合条件的节点有多个,那么返回第一个。
-
举例:document.selectSingleNode("/students/student[@id=‘1‘]")
-
-
-
安装版:需要安装,一般不考虑使用。
-
解压版: 直接解压缩使用,我们使用的版本。
-
-
-
conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:
-
server.xml:配置整个服务器信息。例如修改端口号。默认HTTP请求的端口号是:8080
-
tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;
-
web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!
-
context.xml:对所有应用的统一配置,通常我们不会去配置它。
-
-
lib:Tomcat的类库,里面是一大堆jar文件。
-
logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。
-
temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!
-
webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目。其中ROOT是一个特殊的默认项目
-
work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的,可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。
-
LICENSE:许可证。
-
在命令行中运行catalina run或者 Tomcat解压目录下双击startup.bathttp://localhost:8080
情况一:如果双击startup.bat后窗口一闪而过,请查看JAVA_HOME是否配置正确。
startup.bat会调用catalina.bat,而catalina.bat会调用setclasspath.bat,setclasspath.bat会使用JAVA_HOME环境变量,所以我们必须在启动Tomcat之前把JAVA_HOME配置正确。
情况二:如果启动失败,提示端口号被占用,则将默认的8080端口修改为其他未使用的值,例如8989等。
打开:解压目录confserver.xml,找到第一个Connector标签,修改port属性
web服务器在启动时,实际上是监听了本机上的一个端口,当有客户端向该端口发送请求时,web服务器就会处理请求。但是如果不是向其所监听的端口发送请求,web服务器不会做任何响应。例如:Tomcat启动监听了8989端口,而访问的地址是http://localhost:8080
-
-
Libraries:存放的是Tomcat及JRE中的jar包。
-
build:自动编译.java文件的目录。
-
WebContent:存放的是需要部署到服务器的文件
-
META-INF:是存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成。
-
MANIFEST.MF:配置清单文件
-
-
WEB-INF:这个目录下的文件,是不能被客户端直接访问的。
-
lib:用于存放该工程用到的库。粘贴过来以后,不再需要build path
-
web.xml:web工程的配置文件,完成用户请求的逻辑名称到真正的servlet类的映射。
-
classes:存放Java字节码文件的目录。
-
-
-
-
实际上,Eclipse在使用Tomcat时,并没有将项目部署到Tomcat的目录下,而是在其工作空间中,创建了一个Tomcat的镜像,Eclipse启动的Tomcat是他自己配置的镜像。
-
Eclipse镜像所在目录:你的工作空间目录.metadata.pluginsorg.eclipse.wst.server.core mp0
总结:启动服务器以后,我们的web项目会部署到服务器目录的wtpwebapps文件夹的目录下。index.jsp也是直接声明在此项目目录下的。
以上是关于Web基础了解版04-XML-Tomcat的主要内容,如果未能解决你的问题,请参考以下文章
[vscode]--HTML代码片段(基础版,reactvuejquery)
为啥我的 C 代码片段不起作用?简化版可以。为 unsigned long long 传递不带 VA_ARGS 的 args