zoukankan      html  css  js  c++  java
  • javaweb学习总结十六(tomcat服务器的使用、虚拟目录的映射)

    一:tomcat服务器的目录

    1:目录结构

    2:web应用程序介绍

    二:虚拟目录的映射

    假如我在E盘建立一个目录web,里面存放1.html文件,我想让外界访问

    1:直接在conf目录下的server.xml文件中配置<context>元素,将E:web映射到虚拟目录/warrior

    然后重启应用,bin/startup.bat,访问资源。

    启动tomcat服务器一闪而过,而且JAVA_HOME环境变量已经配置,可以查看日志logs目录

    异常如下:

    警告: Catalina.start using conf/server.xml:
    com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)
    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:554)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1242)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:769)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1040)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2954)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:582)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

    原因以及解决方法:我使用的ue打开server.xml修改文件,然后保存的时候保存成GBK编码了,只需要保存成UTF-8就可以了。

    重启服务,访问资源:

    2:如果想让应用默认访问web应用程序,只需要把path属性改为空以及

    <Context path="" docBase="E:web"/>

    就ok了。

    3:这种访问方式有个问题,就是每次修改完context(应用程序虚拟映射目录)后,都要重启服务器才能够生效,重启服务

    那么用户在启动阶段就访问不了应用,这里我们可以使用其它方式修改虚拟映射目录

    a:可以直接在conf目录下context.xml文件中修改,但是修改这个文件,所有的web应用程序都会加载这个配置文件。

    b:在confCatalinalocalhost目录下任意建xml文件,文件名称就是虚拟应用目录,如建warrior.xml,写上配置信息

    <Context docBase = "E:web"/> 这里不需要再配置path,因为默认path就是目录名称

    不需要重新启动服务,直接访问:

    这里还可以配置多级路径,只需要把配置文件名称改为多级,如a#b#warrior.xml即可。

    如果想将应用程序设置为默认访问应用,只需要将配置文件名称改为ROOT.xml即可(必须是大写的ROOT)。需要

    重启启动服务,然后访问:

    4:webapps目录自动映射虚拟目录

    只需要将web应用目录拷贝到webapps目录下即可,tomcat会帮我们自动映射。

    一般情况下:开发中都是讲web应用程序放到webapps目录下,但是如果tomcat服务器目录和web应用程序目录

    不在一个盘下,那么就需要手动配置context了。

  • 相关阅读:
    JAVA基础总结(二)
    JAVA基础知识-关键字
    JAVA SE基础知识
    (七)uboot NFS启动
    (六)uboot引导启动内核
    U_boot 的 bootcmd 和bootargs参数详解
    uboot报错
    制作uImage
    配置内核支持NFS启动文件系统
    在内核中增加对yaffs文件系统的支持
  • 原文地址:https://www.cnblogs.com/warrior4236/p/5875534.html
Copyright © 2011-2022 走看看