Tomcat html XML

apache和tomcat

Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。

Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP)

Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行

两者从以下几点可以比较的:

1、两者都是apache组织开发的

2、两者都有HTTP服务的功能

3、两者都是开源免费的

联系

1)Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通(Apache单向连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然)。

2)Apache只支持静态网页,但像Jsp动态网页就需要Tomcat来处理。

3)Apache和Tomcat整合使用:

如果客户端请求的是静态页面,则只需要Apache服务器响应请求;

如果客户端请求动态页面,则是Tomcat服务器响应请求,将解析的JSP等网页代码解析后回传给Apache服务器,再经Apache返回给浏览器端。

这是因为jsp是服务器端解释代码的,Tomcat只做动态代码解析,Apache回传解析好的静态代码,Apache+Tomcat这样整合就可以减少Tomcat的服务开销。

4)Apache和Tomcat是独立的,在同一台服务器上可以集成。

区别

Apache是有C语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat是Java编写的,更好的支持Servlet和JSP。

1、Apache是Web服务器,Web服务器传送(serves)页面使浏览器可以浏览,Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供 (serves)商业逻辑(business logic)。

Tomcat是运行在Apache上的应用服务器,应用程序服务器提供的是客户端应用程序可以调用(call)的方法 (methods)。它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于apache运行。

2、Apache是普通服务器,本身只支持html静态普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然),Tomcat是jsp/servlet容器,同时也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手动调试,不过很容易的。

3、Apache侧重于http server,Tomcat侧重于servlet引擎,如果以standalone方式运行,功能上Tomcat与apache等效支持JSP,但对静态网页不太理想。

4、Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。

5、首选web服务器是Apache,但Apache解析不了的jsp、servlet才用tomcat。

6、Apache是很最开始的页面解析服务,tomcat是后研发出来的,从本质上来说tomcat的功能完全可以替代Apache,但Apache毕竟是tomcat的前辈级人物,并且市场上也有不少人还在用Apache,所以Apache还会继续存在,不会被取代,apache不能解析java的东西,但解析html速度快。

两者例子:

Apache是一辆车,上面可以装一些东西如html等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是TOMCAT。

两者整合:

Apache是一个web服务器环境程序,启用他可以作为web服务器使用不过只支持静态网页,不支持动态网页,如asp、jsp、php、cgi

如果要在Apache环境下运行jsp就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat

那为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK

整合的好处:

如果客户端请求的是静态页面,则只需要Apache服务器响应请求

如果客户端请求动态页面,则是Tomcat服务器响应请求

因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

Tomact

配置Tomcat服务端口

conf目录下保存了配置文件,server.xml文件

将8080修改为1024以上的端口

列出web应用根路径下的所有页面

为了安全,默认为false

listings
true

登录控制台

控制台按钮(tomcat页面右上角)

server status:监控服务器的状态
manager app :可以部署、监控web应用,通常只用manager控制台
host manager:用于实现站点管理

Manager App需要登录密码,是通过JAAS控制的,如何为这个控制台配置用户和密码:
*webapps下存放web应用,Manager控制台web应用也在该目录下。
webapps/manager/WEB_INF目录中的web.xml文件,
在Security部分中

访问:html权限:manager-gui
text权限:manager-script
html JMX Proxy的权限:manager-jmx
所有Status资源权限:manager-status

通常只需分配一个manager-gui角色即可

tomcat以文件存放用户名和密码,在conf下的tomcat-users.xml
在这里插入图片描述
新增一个用户

<user username="111" password="11" roles="manager-gui"/>

之后点击manager app即可使用上述密码登录
登录后即可部署web应用
控制台下方的Deploy用于部署web应用
也可将WAR文件部署成web应用
在deploy下方有一个WAR file to deploy模块,此模块用于部署war文件

设置虚拟目录

新建一个文件夹,将Tomcat的webapps\root目录下的文件夹WEB-INF复制到新建的文件夹下。
打开此处的WEB-INF下的web.xml在后面加入

<!--JSPC servlet mappings start -->
<!--JSPC servlet mappings end -->
打开Tomcat下的conf目录中的server.xml文件在<HOST></Host>之间加入
<Context path="/javaweb" docBase="E:\javaWeb"></Context>
//path 表示虚拟目录的名字  docBase表示物理路径

之后即可以输入localhost:8080/dirname/
的形式打开虚拟目录

html

在这里插入图片描述
在这里插入图片描述
标题文字
n为1-6的整数值,1最大6最小
在这里插入图片描述
文字
在这里插入图片描述```

段落标记
<P align=对齐方式>
超链接
<a href=地址 name=字符串 target=打开窗口方式></a>

在这里插入图片描述

链接方式

telnet链接  允许用户登录到一台远程计算机
<A href="Telnet:地址">热点</a>
e-mail
<A href="mailto:邮件地址"></A>
FTP链接
文件传输协议,从一台计算机把文件复制到自己的计算机上。
<A href="FTP:目标地址">热点</A>
目标地址建立链接的主机地址。
WAIS大数据库
<A href="WAIS:目标地址"></a>

图片

在这里插入图片描述在这里插入图片描述
图片链接

表单标记

Textarea:

select
input

在这里插入图片描述
单选按钮radio
复选框checkbox
文件域file

图像域image

隐藏域 <input type=“hidden”

form标记

enctype传输数据的mime类型 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190810184422377.png)

文字滚动效果

<marquee bgcolor=""   behavior="" direction="" scrollamout=""  scrolldelay="" height=""  width=""  truespeed="">
滚动内容
</marquee>

在这里插入图片描述

<marquee behavior="alternate">alternate:表示在两端之间来回滚动。 </marquee>

<marquee behavior="scroll">scroll:表示由一端滚动到另一端,会重复。</marquee>

<marquee behavior="slide">slide:      表示由一端滚动到另一端,不会重复。</marquee>

<marquee><font size=+3 color=red>Hello, World</font></marquee>

下面这两个事件经常用到:

onMouseOut="this.start()" :用来设置鼠标移出该区域时继续滚动

onMouseOver="this.stop()":用来设置鼠标移入该区域时停止滚动

代码如下:

<marquee onMouseOut="this.start()" onMouseOver="this.stop()">onMouseOut="this.start()" :用来设置鼠标移出该区域时继续滚动 onMouseOver="this.stop()":用来设置鼠标移入该区域时停止滚动</marquee>
<marquee direction="down">设定活动字幕的滚动方向direction="down":向下</marquee>

<marquee direction="left">设定活动字幕的滚动方向direction="left":向左</marquee>

<marquee direction="right">设定活动字幕的滚动方向direction="right":向右</marquee>

<marquee direction="up">设定活动字幕的滚动方向direction="up":向上</marquee>


媒体

背景音乐

<bgsound>
<bgsound src="" loop"" delay="" volume="" balance="">

在这里插入图片描述
媒体插件
在这里插入图片描述flash
在这里插入图片描述

ActiveX控件

是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,
ActiveX控件可以充当浏览器插件的可重复使用的组件,可以在windows系统上的internet
explorer中运行,但不能在macintosh系统或Netscape Navigator中运行,
在这里插入图片描述在这里插入图片描述

XML与HTML

参考来自https://www.runoob.com/xml/xml-intro.html
XML 指可扩展标记语言(eXtensible Markup Language)。

XML 被设计用来传输和存储数据。
什么是 XML?
XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
XML 不是 HTML 的替代。

XML 和 HTML 为不同的目的而设计:
XML 被设计用来传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息。
XML用来被描述数据,而HTML被用来格式化和显示这些数据

XML

XML是标准通用标记语音(SGML)的子集,非常合适web传输。XML提供了统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

只包含了发送者和接受者的信息及发送的信息,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档

无预定义

上面实例中的标签没有在任何 XML 标准中定义过(比如 和 )。这些标签是由 XML 文档的创作者发明的。

这是因为 XML 语言没有预定义的标签。

HTML 中使用的标签都是预定义的。HTML 文档只能使用在 HTML 标准中定义过的标签(如

等等)。

XML 允许创作者定义自己的标签和自己的文档结构。
XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享。

XML 把数据从 HTML 分离

如果您需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。

通过 XML,数据能够存储在独立的 XML 文件中。这样您就可以专注于使用 HTML/CSS 进行显示和布局,并确保修改底层数据不再需要对 HTML 进行任何的改变。

通过使用几行 JavaScript 代码,您就可以读取一个外部 XML 文件,并更新您的网页的数据内容。
XML 简化数据共享

在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。

XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。

这让创建不同应用程序可以共享的数据变得更加容易。

XML 简化数据传输

对开发人员来说,其中一项最费时的挑战一直是在互联网上的不兼容系统之间交换数据。

由于可以通过各种不兼容的应用程序来读取数据,以 XML 交换数据降低了这种复杂性。

XML 简化平台变更

升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。

XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新的应用程序或新的浏览器。

XML 使您的数据更有用

不同的应用程序都能够访问您的数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进行访问。

通过 XML,您的数据可供各种阅读设备使用(掌上计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。

XML 用于创建新的互联网语言

很多新的互联网语言是通过 XML 创建的。

这里有一些实例:
XHTML
用于描述可用的 Web 服务 的 WSDL
作为手持设备的标记语言的 WAP 和 WML
用于新闻 feed 的 RSS 语言
描述资本和本体的 RDF 和 OWL
用于描述针针对 Web 的多媒体 的 SMIL

XML 树结构

XML 文档必须包含根元素。该元素是所有其他元素的父元素。

XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

所有的元素都可以有子元素:

.....

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。

所有的元素都可以有文本内容和属性(类似 HTML 中)。

<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

所有的 XML 元素都必须有一个关闭标签
XML 标签对大小写敏感
XML 必须正确嵌套

XML 属性值必须加引号
错误嵌套:


<b><i>This text is bold and italic</i></b>
//**XML 属性值必须加引号**
<note date="12/11/2007">

在 XML 中,一些字符拥有特殊的意义

如果您把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
为了避免这个错误,请用实体引用来代替 “<” 字符:
if salary < 1000 then

在这里插入图片描述

XML 中的注释

<!-- This is a comment -->

在 XML 中,空格会被保留
在 XML 中,文档中的空格不会被删减。
XML 以 LF 存储换行
'\r’是回车,前者使光标到行首,(carriage return)
'\n’是换行,后者使光标下移一格,(line feed)

\r 是回车,return
\n 是换行,newline
什么是 XML 元素?

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

一个元素可以包含:
其他元素
文本
属性
或混合以上所有…

XML 命名规则

XML 元素必须遵循以下命名规则:
名称可以包含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字母 xml(或者 XML、Xml 等等)开始
名称不能包含空格

可使用任何名称,没有保留的字词。
最佳命名习惯

使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为您想要从 first 里边减去 name。

避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性。

避免 “:” 字符。冒号会被转换为命名空间来使用。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。
XML 元素是可扩展的

XML 元素是可扩展,以携带更多的信息。

XML 属性

属性通常提供不属于数据组成部分的信息。在下面的实例中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:

<file type="gif">computer.gif</file>
XML 属性必须加引号
<person sex="female">
<person sex='female'>
如果属性值本身包含双引号,您可以使用单引号,就像这个实例:
<gangster name='George "Shotgun" Ziegler'>
或者您可以使用字符实体:
<gangster name="George &quot;Shotgun&quot; Ziegler">

使用元素提供相同的信息
<person >
<sex>female<sex>
</person>

在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用元素吧。
属性不能包含多个值(元素可以)
属性不能包含树结构(元素可以)
属性不容易扩展(为未来的变化)

使用了扩展的date元素
<note>
 <date>
<day>10</day>
<month>01</month>
<year>2008</year>
 </date>
 <to>Tove</to>
 <from>Jani</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
 </note>

有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 id 属性是一样的。

<note id="501">
</note>

形式良好的 XML 文档
XML 文档必须有一个根元素
XML元素都必须有一个关闭标签
XML 标签对大小写敏感
XML 元素必须被正确的嵌套
XML 属性值必须加引号

XML DTD

DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:

<!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

]>

DOCTYPE 声明是对外部 DTD 文件的引用。
XML Schema
W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:

<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

XML 文档中的错误会终止您的 XML 应用程序。
使用浏览器可直接查看xml文件
使用 CSS 来格式化 XML 文档是有可能的。

<?xml-stylesheet type="text/css" href="cd_catalog.css"?>

使用 XSLT 显示 XML

XSLT 是首选的 XML 样式表语言。

XSLT(eXtensible Stylesheet Language Transformations)远比 CSS 更加完善。

XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTML:
在使用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同结果。为了减少这种问题,可以在服务器上进行 XSLT 转换。

xml使用

DOM解析

java

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

 //得到DOM解析器工厂类的实例
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        try
        {
            //得到dom的解析器对象
            DocumentBuilder db=dbf.newDocumentBuilder();
            //解析XML文档,得到代表文档的document对象
            File file=new File("D:\\Eclipse\\workSpace\\day_050401\\src\\book.xml");
            Document doc=db.parse(file);
            
            //以文档顺序返回标签名字为书的所有后代元素
            NodeList nl=doc.getElementsByTagName("书");
            
            for(int i=0;i<nl.getLength();i++)
            {
                Element elt=(Element) nl.item(i);
                Node eltAuthor=elt.getElementsByTagName("作者").item(0);
                Node eltPricer=elt.getElementsByTagName("价格").item(0);
                Node eltPublish=elt.getElementsByTagName("出版社").item(0);
                
                String Author=eltAuthor.getFirstChild().getNodeValue();
                String Pricer=eltPricer.getFirstChild().getNodeValue();
                String Publish=eltPublish.getFirstChild().getNodeValue();
                
                System.out.println("-------书籍信息"+(i+1)+"-------");
                System.out.println("作者:"+Author);
                System.out.println("价格:"+Pricer);
                System.out.println("出版社:"+Publish);
            }
            
        } 
        catch (ParserConfigurationException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } 
        catch (SAXException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (IOException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

SAX解析

SAX:内存消耗较小,适合读取操作。SAX是一种基于事件驱动的API,利用SAX解析XML文档涉及解析器和事件处理器两个部分。解析器负责读取XML文档,并向事件处理器发送事件,事件处理器则负责对事件作出相应,对传递的XML数据进行处理。

import...
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
...
class Book
{
    private String name;
    private String author;
    private String price;
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getAuthor()
    {
        return author;
    }
    public void setAuthor(String author)
    {
        this.author = author;
    }
    public String getPrice()
    {
        return price;
    }
    
    public void setPrice(String price)
    {
        this.price = price;
        
    }
    
}
public class Demo extends DefaultHandler
{
    private List list=new ArrayList();
    private String currentTag;
    private Book book;
    @Override
    public void startElement(String uri, String localName, String name,
            Attributes attributes) throws SAXException
    {
        currentTag=name;
        if("书".equals(currentTag))
        {
            book=new Book();
        }
    }
    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException
    {
        if("出版社".equals(currentTag))
        {
            String name=new String(ch,start,length);
            book.setName(name);
        }
        if("作者".equals(currentTag))
        {
            String author=new String(ch,start,length);
            book.setAuthor(author);
        }
        if("价格".equals(currentTag))
        {
            String price=new String(ch,start,length);
            book.setPrice(price);
        }
    }
    @Override
    public void endElement(String uri, String localName, String name)
            throws SAXException
    {
        if(name.equals("书"))
        {
            list.add(book);
            book=null;
        }
        currentTag=null;
    }
    public List getBooks()
    {
        return list;
    }
    public static void main(String []args)
    {
        //1.创建解析工厂
        SAXParserFactory factory=SAXParserFactory.newInstance();
        SAXParser sp=null;
        try
        {
            //2.得到解析器
            sp=factory.newSAXParser();
            //3、得到读取器
            XMLReader reader=sp.getXMLReader();
            File file=new File("D:\\Eclipse\\workSpace\\day_050401\\src\\book.xml");
            //4.设置内容处理器
            Demo handle=new Demo();
            //reader.setContentHandler(handle);
            sp.parse(file,handle);
            //5.读取xml文档内容
            List<Book> list=handle.getBooks();
            for(int i=0;i<list.size();i++)
            System.out.println(list.get(i).getAuthor()+"----"+list.get(i).getName()+"-----"+list.get(i).getPrice());
        } 
        catch (ParserConfigurationException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } 
        catch (SAXException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        catch (IOException e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
}

script使用XML
<script>
 if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
 else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
 xmlhttp.open("GET","note.xml",false);
 xmlhttp.send();
 xmlDoc=xmlhttp.responseXML;

 document.getElementById("to").innerHTML=
 xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
 document.getElementById("from").innerHTML=
 xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
 document.getElementById("message").innerHTML=
 xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
 </script>
-<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

从上面的 XML 文件(“note.xml”)的 元素中提取文本 “Tove”,语法是:

getElementsByTagName(“to”)[0].childNodes[0].nodeValue

跨浏览器类型判断
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
 else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}
在HTML页面中显示XML数据
xmlhttp.open("GET","cd_catalog.xml",false);
 xmlhttp.send();
 xmlDoc=xmlhttp.responseXML; 

 document.write("<table border='1'>");
 var x=xmlDoc.getElementsByTagName("CD");
 for (i=0;i<x.length;i++)
{ 
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
 document.write("</table>");
``

Web.xmlTomcat 用来配置 Web 应用程序的主要配置文件。它位于 Web 应用程序的 WEB-INF 目录下。以下是一些常见的 Tomcat Web.xml 配置选项: 1. Servlet 配置:可以在 <servlet> 标签定义 Servlet 的名称、类名和映射路径。 示例: ```xml <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> ``` 2. 过滤器配置:可以使用 <filter> 标签定义过滤器,并使用 <filter-mapping> 标签指定过滤器的映射路径。 示例: ```xml <filter> <filter-name>MyFilter</filter-name> <filter-class>com.example.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. Listener 配置:可以在 <listener> 标签定义监听器。 示例: ```xml <listener> <listener-class>com.example.MyListener</listener-class> </listener> ``` 4. 错误页面配置:可以使用 <error-page> 标签定义特定错误码或异常类型对应的错误页面。 示例: ```xml <error-page> <error-code>404</error-code> <location>/error/404.html</location> </error-page> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/error/exception.html</location> </error-page> ``` 这些只是 Web.xml 配置的一部分,还有其他许多配置选项,如会话管理、上下文参数等。你可以根据自己的具体需求进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值