You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rz...@apache.org on 2024/07/02 12:46:57 UTC

(tomee) branch main updated: Align web.xml of distribution with Tomcat 10.1.x (with TomEE modifications related to jasper)

This is an automated email from the ASF dual-hosted git repository.

rzo1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/main by this push:
     new 79b4e03552 Align web.xml of distribution with Tomcat 10.1.x (with TomEE modifications related to jasper)
79b4e03552 is described below

commit 79b4e035520bcc1411239dc3274718023bb35c9a
Author: Richard Zowalla <rz...@apache.org>
AuthorDate: Tue Jul 2 14:46:50 2024 +0200

    Align web.xml of distribution with Tomcat 10.1.x (with TomEE modifications related to jasper)
---
 .../src/main/resources/tomee/conf/web.xml          | 1201 ++++++++++----------
 .../src/main/resources/tomee/conf/web.xml          | 1201 ++++++++++----------
 .../src/main/resources/tomee/conf/web.xml          | 1201 ++++++++++----------
 .../src/main/resources/tomee/conf/web.xml          | 1201 ++++++++++----------
 tomee/tomee-common/src/main/resources/conf/web.xml | 1201 ++++++++++----------
 5 files changed, 3160 insertions(+), 2845 deletions(-)

diff --git a/boms/tomee-microprofile/src/main/resources/tomee/conf/web.xml b/boms/tomee-microprofile/src/main/resources/tomee/conf/web.xml
index 1c6e849dea..1f9a07c6c8 100644
--- a/boms/tomee-microprofile/src/main/resources/tomee/conf/web.xml
+++ b/boms/tomee-microprofile/src/main/resources/tomee/conf/web.xml
@@ -14,95 +14,109 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+-->
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-         version="4.0">
-    <!--  ======================== Introduction ==============================  -->
-    <!--  This document defines default values for *all* web applications       -->
-    <!--  loaded into this instance of Tomcat.  As each application is          -->
-    <!--  deployed, this file is processed, followed by the                     -->
-    <!--  "/WEB-INF/web.xml" deployment descriptor from your own                -->
-    <!--  applications.                                                         -->
-    <!--                                                                        -->
-    <!--  WARNING:  Do not configure application-specific resources here!       -->
-    <!--  They should go in the "/WEB-INF/web.xml" file in your application.    -->
-    <!--  ================== Built In Servlet Definitions ====================  -->
-    <!--  The default servlet for all web applications, that serves static      -->
-    <!--  resources.  It processes all requests that are not mapped to other    -->
-    <!--  servlets with servlet mappings (defined either here or in your own    -->
-    <!--  web.xml file).  This servlet supports the following initialization    -->
-    <!--  parameters (default values are in square brackets):                   -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet. Useful values are 0, 1, and    -->
-    <!--                        11 where higher values mean more detail. [0]    -->
-    <!--                                                                        -->
-    <!--    fileEncoding        Encoding to be used to read static resources    -->
-    <!--                        [platform default]                              -->
-    <!--                                                                        -->
-    <!--    useBomIfPresent     If a static file contains a byte order mark     -->
-    <!--                        (BOM), should this be used to determine the     -->
-    <!--                        file encoding in preference to fileEncoding.    -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    input               Input buffer size (in bytes) when reading       -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    listings            Should directory listings be produced if there  -->
-    <!--                        is no welcome file in this directory?  [false]  -->
-    <!--                        WARNING: Listings for directories with many     -->
-    <!--                        entries can be slow and may consume             -->
-    <!--                        significant proportions of server resources.    -->
-    <!--                                                                        -->
-    <!--    output              Output buffer size (in bytes) when writing      -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    readonly            Is this context "read only", so HTTP            -->
-    <!--                        commands like PUT and DELETE are                -->
-    <!--                        rejected?  [true]                               -->
-    <!--                                                                        -->
-    <!--    readmeFile          File to display together with the directory     -->
-    <!--                        contents. [null]                                -->
-    <!--                                                                        -->
-    <!--    sendfileSize        If the connector used supports sendfile, this   -->
-    <!--                        represents the minimal file size in KB for      -->
-    <!--                        which sendfile will be used. Use a negative     -->
-    <!--                        value to always disable sendfile.  [48]         -->
-    <!--                                                                        -->
-    <!--    useAcceptRanges     Should the Accept-Ranges header be included     -->
-    <!--                        in responses where appropriate? [true]          -->
-    <!--                                                                        -->
-    <!--   For directory listing customization. Checks localXsltFile, then      -->
-    <!--   globalXsltFile, then defaults to original behavior.                  -->
-    <!--                                                                        -->
-    <!--    localXsltFile       Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet residing    -->
-    <!--                        in that directory. This overrides               -->
-    <!--                        contextXsltFile and globalXsltFile[null]        -->
-    <!--                                                                        -->
-    <!--    contextXsltFile     Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet which is    -->
-    <!--                        relative to the context root. This overrides    -->
-    <!--                        globalXsltFile[null]                            -->
-    <!--                                                                        -->
-    <!--    globalXsltFile      Site wide configuration version of              -->
-    <!--                        localXsltFile. This argument must either be an  -->
-    <!--                        absolute or relative (to either                 -->
-    <!--                        $CATALINA_BASE/conf or $CATALINA_HOME/conf)     -->
-    <!--                        path that points to a location below either     -->
-    <!--                        $CATALINA_BASE/conf (checked first) or          -->
-    <!--                        $CATALINA_HOME/conf (checked second).[null]     -->
-    <!--                                                                        -->
-    <!--    showServerInfo      Should server information be presented in the   -->
-    <!--                        response sent to clients when directory         -->
-    <!--                        listings is enabled? [true]                     -->
-    <!--                                                                        -->
-    <!--    allowPartialPut     Should the server treat an HTTP PUT request     -->
-    <!--                        with a Range header as a partial PUT? Note      -->
-    <!--                        that RFC 7233 clarified that Range headers are  -->
-    <!--                        only valid for GET requests. [true]             -->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+         version="6.0">
+
+    <!-- ======================== Introduction ============================== -->
+    <!-- This document defines default values for *all* web applications      -->
+    <!-- loaded into this instance of Tomcat.  As each application is         -->
+    <!-- deployed, this file is processed, followed by the                    -->
+    <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+    <!-- applications.                                                        -->
+    <!--                                                                      -->
+    <!-- WARNING:  Do not configure application-specific resources here!      -->
+    <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+    <!-- Set the default request and response character encodings to UTF-8.   -->
+    <request-character-encoding>UTF-8</request-character-encoding>
+    <response-character-encoding>UTF-8</response-character-encoding>
+
+
+    <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+    <!-- The default servlet for all web applications, that serves static     -->
+    <!-- resources.  It processes all requests that are not mapped to other   -->
+    <!-- servlets with servlet mappings (defined either here or in your own   -->
+    <!-- web.xml file).  This servlet supports the following initialization   -->
+    <!-- parameters (default values are in square brackets):                  -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet. Useful values are 0, 1, and   -->
+    <!--                       11 where higher values mean more detail. [0]   -->
+    <!--                                                                      -->
+    <!--   fileEncoding        Encoding to be used to read static resources   -->
+    <!--                       [platform default]                             -->
+    <!--                                                                      -->
+    <!--   useBomIfPresent     If a static file contains a byte order mark    -->
+    <!--                       (BOM), should this be used to determine the    -->
+    <!--                       file encoding in preference to fileEncoding.   -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   input               Input buffer size (in bytes) when reading      -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   listings            Should directory listings be produced if there -->
+    <!--                       is no welcome file in this directory?  [false] -->
+    <!--                       WARNING: Listings for directories with many    -->
+    <!--                       entries can be slow and may consume            -->
+    <!--                       significant proportions of server resources.   -->
+    <!--                                                                      -->
+    <!--   output              Output buffer size (in bytes) when writing     -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   readonly            Is this context "read only", so HTTP           -->
+    <!--                       commands like PUT and DELETE are               -->
+    <!--                       rejected?  [true]                              -->
+    <!--                                                                      -->
+    <!--   readmeFile          File to display together with the directory    -->
+    <!--                       contents. [null]                               -->
+    <!--                                                                      -->
+    <!--   sendfileSize        If the connector used supports sendfile, this  -->
+    <!--                       represents the minimal file size in KiB for    -->
+    <!--                       which sendfile will be used. Use a negative    -->
+    <!--                       value to always disable sendfile.  [48]        -->
+    <!--                                                                      -->
+    <!--   useAcceptRanges     Should the Accept-Ranges header be included    -->
+    <!--                       in responses where appropriate? [true]         -->
+    <!--                                                                      -->
+    <!--  For directory listing customization. Checks localXsltFile, then     -->
+    <!--  globalXsltFile, then defaults to original behavior.                 -->
+    <!--                                                                      -->
+    <!--   localXsltFile       Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet residing   -->
+    <!--                       in that directory. This overrides              -->
+    <!--                       contextXsltFile and globalXsltFile[null]       -->
+    <!--                                                                      -->
+    <!--   contextXsltFile     Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet which is   -->
+    <!--                       relative to the context root. This overrides   -->
+    <!--                       globalXsltFile[null]                           -->
+    <!--                                                                      -->
+    <!--   globalXsltFile      Site wide configuration version of             -->
+    <!--                       localXsltFile. This argument must either be an -->
+    <!--                       absolute or relative (to either                -->
+    <!--                       $CATALINA_BASE/conf or $CATALINA_HOME/conf)    -->
+    <!--                       path that points to a location below either    -->
+    <!--                       $CATALINA_BASE/conf (checked first) or         -->
+    <!--                       $CATALINA_HOME/conf (checked second).[null]    -->
+    <!--                                                                      -->
+    <!--   showServerInfo      Should server information be presented in the  -->
+    <!--                       response sent to clients when directory        -->
+    <!--                       listings is enabled? [true]                    -->
+    <!--                                                                      -->
+    <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
+    <!--                       with a Range header as a partial PUT? Note     -->
+    <!--                       that while RFC 7233 clarified that Range       -->
+    <!--                       headers only valid for GET requests, RFC 9110  -->
+    <!--                       (which obsoletes RFC 7233) now allows partial  -->
+    <!--                       puts. [true]                                   -->
+
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
@@ -116,144 +130,143 @@
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
-    <!--  The JSP page compiler and execution servlet, which is the mechanism   -->
-    <!--  used by Tomcat to support JSP pages.  Traditionally, this servlet     -->
-    <!--  is mapped to the URL pattern "*.jsp".  This servlet supports the      -->
-    <!--  following initialization parameters (default values are in square     -->
-    <!--  brackets):                                                            -->
-    <!--                                                                        -->
-    <!--    checkInterval       If development is false and checkInterval is    -->
-    <!--                        greater than zero, background compilations are  -->
-    <!--                        enabled. checkInterval is the time in seconds   -->
-    <!--                        between checks to see if a JSP page (and its    -->
-    <!--                        dependent files) needs to  be recompiled. [0]   -->
-    <!--                                                                        -->
-    <!--    classdebuginfo      Should the class file be compiled with          -->
-    <!--                        debugging information?  [true]                  -->
-    <!--                                                                        -->
-    <!--    classpath           What class path should I use while compiling    -->
-    <!--                        generated servlets?  [Created dynamically       -->
-    <!--                        based on the current web application]           -->
-    <!--                                                                        -->
-    <!--    compiler            Which compiler Ant should use to compile JSP    -->
-    <!--                        pages.  See the jasper documentation for more   -->
-    <!--                        information.                                    -->
-    <!--                                                                        -->
-    <!--    compilerSourceVM    Compiler source VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    compilerTargetVM    Compiler target VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    development         Is Jasper used in development mode? If true,    -->
-    <!--                        the frequency at which JSPs are checked for     -->
-    <!--                        modification may be specified via the           -->
-    <!--                        modificationTestInterval parameter. [true]      -->
-    <!--                                                                        -->
-    <!--    displaySourceFragment                                               -->
-    <!--                        Should a source fragment be included in         -->
-    <!--                        exception messages? [true]                      -->
-    <!--                                                                        -->
-    <!--    dumpSmap            Should the SMAP info for JSR45 debugging be     -->
-    <!--                        dumped to a file? [false]                       -->
-    <!--                        False if suppressSmap is true                   -->
-    <!--                                                                        -->
-    <!--    enablePooling       Determines whether tag handler pooling is       -->
-    <!--                        enabled. This is a compilation option. It will  -->
-    <!--                        not alter the behaviour of JSPs that have       -->
-    <!--                        already been compiled. [true]                   -->
-    <!--                                                                        -->
-    <!--    engineOptionsClass  Allows specifying the Options class used to     -->
-    <!--                        configure Jasper. If not present, the default   -->
-    <!--                        EmbeddedServletOptions will be used.            -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    errorOnUseBeanInvalidClassAttribute                                 -->
-    <!--                        Should Jasper issue an error when the value of  -->
-    <!--                        the class attribute in an useBean action is     -->
-    <!--                        not a valid bean class?  [true]                 -->
-    <!--                                                                        -->
-    <!--    fork                Tell Ant to fork compiles of JSP pages so that  -->
-    <!--                        a separate JVM is used for JSP page compiles    -->
-    <!--                        from the one Tomcat is running in. [true]       -->
-    <!--                                                                        -->
-    <!--    genStringAsCharArray                                                -->
-    <!--                        Should text strings be generated as char        -->
-    <!--                        arrays, to improve performance in some cases?   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    ieClassId           The class-id value to be sent to Internet       -->
-    <!--                        Explorer when using <jsp:plugin> tags.          -->
-    <!--                        [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]    -->
-    <!--                                                                        -->
-    <!--    javaEncoding        Java file encoding to use for generating java   -->
-    <!--                        source files. [UTF8]                            -->
-    <!--                                                                        -->
-    <!--    keepgenerated       Should we keep the generated Java source code   -->
-    <!--                        for each page instead of deleting it? [true]    -->
-    <!--                                                                        -->
-    <!--    mappedfile          Should we generate static content with one      -->
-    <!--                        print statement per input line, to ease         -->
-    <!--                        debugging?  [true]                              -->
-    <!--                                                                        -->
-    <!--    maxLoadedJsps       The maximum number of JSPs that will be loaded  -->
-    <!--                        for a web application. If more than this        -->
-    <!--                        number of JSPs are loaded, the least recently   -->
-    <!--                        used JSPs will be unloaded so that the number   -->
-    <!--                        of JSPs loaded at any one time does not exceed  -->
-    <!--                        this limit. A value of zero or less indicates   -->
-    <!--                        no limit. [-1]                                  -->
-    <!--                                                                        -->
-    <!--    jspIdleTimeout      The amount of time in seconds a JSP can be      -->
-    <!--                        idle before it is unloaded. A value of zero     -->
-    <!--                        or less indicates never unload. [-1]            -->
-    <!--                                                                        -->
-    <!--    modificationTestInterval                                            -->
-    <!--                        Causes a JSP (and its dependent files) to not   -->
-    <!--                        be checked for modification during the          -->
-    <!--                        specified time interval (in seconds) from the   -->
-    <!--                        last time the JSP was checked for               -->
-    <!--                        modification. A value of 0 will cause the JSP   -->
-    <!--                        to be checked on every access.                  -->
-    <!--                        Used in development mode only. [4]              -->
-    <!--                                                                        -->
-    <!--    recompileOnFail     If a JSP compilation fails should the           -->
-    <!--                        modificationTestInterval be ignored and the     -->
-    <!--                        next access trigger a re-compilation attempt?   -->
-    <!--                        Used in development mode only and is disabled   -->
-    <!--                        by default as compilation may be expensive and  -->
-    <!--                        could lead to excessive resource usage.         -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    scratchdir          What scratch directory should we use when       -->
-    <!--                        compiling JSP pages?  [default work directory   -->
-    <!--                        for the current web application]                -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    suppressSmap        Should the generation of SMAP info for JSR45    -->
-    <!--                        debugging be suppressed?  [false]               -->
-    <!--                                                                        -->
-    <!--    trimSpaces          Should template text that consists entirely of  -->
-    <!--                        whitespace be removed from the output (true),   -->
-    <!--                        replaced with a single space (single) or left   -->
-    <!--                        unchanged (false)? Note that if a JSP page or   -->
-    <!--                        tag file specifies a trimDirectiveWhitespaces   -->
-    <!--                        value of true, that will take precedence over   -->
-    <!--                        this configuration setting for that page/tag.   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    xpoweredBy          Determines whether X-Powered-By response        -->
-    <!--                        header is added by generated servlet.  [false]  -->
-    <!--                                                                        -->
-    <!--    strictQuoteEscaping When scriptlet expressions are used for         -->
-    <!--                        attribute values, should the rules in JSP.1.6   -->
-    <!--                        for the escaping of quote characters be         -->
-    <!--                        strictly applied? [true]                        -->
-    <!--                                                                        -->
-    <!--    quoteAttributeEL    When EL is used in an attribute value on a      -->
-    <!--                        JSP page should the rules for quoting of        -->
-    <!--                        attributes described in JSP.1.6 be applied to   -->
-    <!--                        the expression? [true]                          -->
+
+
+    <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+    <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+    <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+    <!-- following initialization parameters (default values are in square    -->
+    <!-- brackets):                                                           -->
+    <!--                                                                      -->
+    <!--   checkInterval       If development is false and checkInterval is   -->
+    <!--                       greater than zero, background compilations are -->
+    <!--                       enabled. checkInterval is the time in seconds  -->
+    <!--                       between checks to see if a JSP page (and its   -->
+    <!--                       dependent files) needs to  be recompiled. [0]  -->
+    <!--                                                                      -->
+    <!--   classdebuginfo      Should the class file be compiled with         -->
+    <!--                       debugging information?  [true]                 -->
+    <!--                                                                      -->
+    <!--   classpath           What class path should I use while compiling   -->
+    <!--                       generated servlets?  [Created dynamically      -->
+    <!--                       based on the current web application]          -->
+    <!--                                                                      -->
+    <!--   compiler            Which compiler Ant should use to compile JSP   -->
+    <!--                       pages.  See the jasper documentation for more  -->
+    <!--                       information.                                   -->
+    <!--                                                                      -->
+    <!--   compilerSourceVM    Compiler source VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   compilerTargetVM    Compiler target VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   development         Is Jasper used in development mode? If true,   -->
+    <!--                       the frequency at which JSPs are checked for    -->
+    <!--                       modification may be specified via the          -->
+    <!--                       modificationTestInterval parameter. [true]     -->
+    <!--                                                                      -->
+    <!--   displaySourceFragment                                              -->
+    <!--                       Should a source fragment be included in        -->
+    <!--                       exception messages? [true]                     -->
+    <!--                                                                      -->
+    <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+    <!--                       dumped to a file? [false]                      -->
+    <!--                       False if suppressSmap is true                  -->
+    <!--                                                                      -->
+    <!--   enablePooling       Determines whether tag handler pooling is      -->
+    <!--                       enabled. This is a compilation option. It will -->
+    <!--                       not alter the behaviour of JSPs that have      -->
+    <!--                       already been compiled. [true]                  -->
+    <!--                                                                      -->
+    <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+    <!--                       configure Jasper. If not present, the default  -->
+    <!--                       EmbeddedServletOptions will be used.           -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   errorOnUseBeanInvalidClassAttribute                                -->
+    <!--                       Should Jasper issue an error when the value of -->
+    <!--                       the class attribute in an useBean action is    -->
+    <!--                       not a valid bean class?  [true]                -->
+    <!--                                                                      -->
+    <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+    <!--                       a separate JVM is used for JSP page compiles   -->
+    <!--                       from the one Tomcat is running in. [true]      -->
+    <!--                                                                      -->
+    <!--   genStringAsCharArray                                               -->
+    <!--                       Should text strings be generated as char       -->
+    <!--                       arrays, to improve performance in some cases?  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   javaEncoding        Java file encoding to use for generating java  -->
+    <!--                       source files. [UTF8]                           -->
+    <!--                                                                      -->
+    <!--   keepgenerated       Should we keep the generated Java source code  -->
+    <!--                       for each page instead of deleting it? [true]   -->
+    <!--                                                                      -->
+    <!--   mappedfile          Should we generate static content with one     -->
+    <!--                       print statement per input line, to ease        -->
+    <!--                       debugging?  [true]                             -->
+    <!--                                                                      -->
+    <!--   maxLoadedJsps       The maximum number of JSPs that will be loaded -->
+    <!--                       for a web application. If more than this       -->
+    <!--                       number of JSPs are loaded, the least recently  -->
+    <!--                       used JSPs will be unloaded so that the number  -->
+    <!--                       of JSPs loaded at any one time does not exceed -->
+    <!--                       this limit. A value of zero or less indicates  -->
+    <!--                       no limit. [-1]                                 -->
+    <!--                                                                      -->
+    <!--   jspIdleTimeout      The amount of time in seconds a JSP can be     -->
+    <!--                       idle before it is unloaded. A value of zero    -->
+    <!--                       or less indicates never unload. [-1]           -->
+    <!--                                                                      -->
+    <!--   modificationTestInterval                                           -->
+    <!--                       Causes a JSP (and its dependent files) to not  -->
+    <!--                       be checked for modification during the         -->
+    <!--                       specified time interval (in seconds) from the  -->
+    <!--                       last time the JSP was checked for              -->
+    <!--                       modification. A value of 0 will cause the JSP  -->
+    <!--                       to be checked on every access.                 -->
+    <!--                       Used in development mode only. [4]             -->
+    <!--                                                                      -->
+    <!--   recompileOnFail     If a JSP compilation fails should the          -->
+    <!--                       modificationTestInterval be ignored and the    -->
+    <!--                       next access trigger a re-compilation attempt?  -->
+    <!--                       Used in development mode only and is disabled  -->
+    <!--                       by default as compilation may be expensive and -->
+    <!--                       could lead to excessive resource usage.        -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   scratchdir          What scratch directory should we use when      -->
+    <!--                       compiling JSP pages?  [default work directory  -->
+    <!--                       for the current web application]               -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+    <!--                       debugging be suppressed?  [false]              -->
+    <!--                                                                      -->
+    <!--   trimSpaces          Should template text that consists entirely of -->
+    <!--                       whitespace be removed from the output (true),  -->
+    <!--                       replaced with a single space (single) or left  -->
+    <!--                       unchanged (false)? Note that if a JSP page or  -->
+    <!--                       tag file specifies a trimDirectiveWhitespaces  -->
+    <!--                       value of true, that will take precedence over  -->
+    <!--                       this configuration setting for that page/tag.  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+    <!--                       header is added by generated servlet.  [false] -->
+    <!--                                                                      -->
+    <!--   strictQuoteEscaping When scriptlet expressions are used for        -->
+    <!--                       attribute values, should the rules in JSP.1.6  -->
+    <!--                       for the escaping of quote characters be        -->
+    <!--                       strictly applied? [true]                       -->
+    <!--                                                                      -->
+    <!--   quoteAttributeEL    When EL is used in an attribute value on a     -->
+    <!--                       JSP page should the rules for quoting of       -->
+    <!--                       attributes described in JSP.1.6 be applied to  -->
+    <!--                       the expression? [true]                         -->
+
     <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
@@ -272,337 +285,372 @@
         </init-param>
         <load-on-startup>3</load-on-startup>
     </servlet>
-    <!--  NOTE: An SSI Filter is also available as an alternative SSI           -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing servlet, which processes SSI          -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this servlet is mapped to the    -->
-    <!--  URL pattern "*.shtml".  This servlet supports the following           -->
-    <!--  initialization parameters (default values are in square brackets):    -->
-    <!--                                                                        -->
-    <!--    buffered            Should output from this servlet be buffered?    -->
-    <!--                        (0=false, 1=true)  [0]                          -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    inputEncoding       The encoding to assume for SSI resources if     -->
-    <!--                        one is not available from the resource.         -->
-    <!--                        [Platform default]                              -->
-    <!--                                                                        -->
-    <!--    outputEncoding      The encoding to use for the page that results   -->
-    <!--                        from the SSI processing. [UTF-8]                -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+
+
+    <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing servlet, which processes SSI         -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+    <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+    <!-- initialization parameters (default values are in square brackets):   -->
+    <!--                                                                      -->
+    <!--   buffered            Should output from this servlet be buffered?   -->
+    <!--                       (0=false, 1=true)  [0]                         -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+    <!--                       one is not available from the resource.        -->
+    <!--                       [Platform default]                             -->
+    <!--                                                                      -->
+    <!--   outputEncoding      The encoding to use for the page that results  -->
+    <!--                       from the SSI processing. [UTF-8]               -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <servlet>
-        <servlet-name>ssi</servlet-name>
-        <servlet-class>
-          org.apache.catalina.ssi.SSIServlet
-        </servlet-class>
-        <init-param>
-          <param-name>buffered</param-name>
-          <param-value>1</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
- -->
-    <!--  Common Gateway Includes (CGI) processing servlet, which supports      -->
-    <!--  execution of external applications that conform to the CGI spec       -->
-    <!--  requirements.  Typically, this servlet is mapped to the URL pattern   -->
-    <!--  "/cgi-bin/*", which means that any CGI applications that are          -->
-    <!--  executed must be present within the web application.  This servlet    -->
-    <!--  supports the following initialization parameters (default values      -->
-    <!--  are in square brackets):                                              -->
-    <!--                                                                        -->
-    <!--    cgiPathPrefix        The CGI search path will start at              -->
-    <!--                         webAppRootDir + File.separator + this prefix.  -->
-    <!--                         If not set, then webAppRootDir is used.        -->
-    <!--                         Recommended value: WEB-INF/cgi                 -->
-    <!--                                                                        -->
-    <!--   cmdLineArgumentsDecoded                                              -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual decoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. This is to           -->
-    <!--                         work-around various issues when Java passes    -->
-    <!--                         the arguments to the OS. See the CGI How-To    -->
-    <!--                         for more details. The default varies by        -->
-    <!--                         platform.                                      -->
-    <!--                         Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+]             -->
-    <!--                         Others:  [.*]                                  -->
-    <!--                         Note that internally the CGI Servlet treats    -->
-    <!--                         [.*] as a special case to improve performance  -->
-    <!--                                                                        -->
-    <!--    cmdLineArgumentsEncoded                                             -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual encoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. The default matches  -->
-    <!--                         the allowed values defined by RFC3875.         -->
-    <!--                         [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+]           -->
-    <!--                                                                        -->
-    <!--    enableCmdLineArguments                                              -->
-    <!--                         Are command line parameters generated from     -->
-    <!--                         the query string as per section 4.4 of 3875    -->
-    <!--                         RFC? [false]                                   -->
-    <!--                                                                        -->
-    <!--    executable           Name of the executable used to run the         -->
-    <!--                         script. [perl]                                 -->
-    <!--                                                                        -->
-    <!--    envHttpHeaders       A regular expression used to select the HTTP   -->
-    <!--                         headers passed to the CGI process as           -->
-    <!--                         environment variables. Note that headers are   -->
-    <!--                         converted to upper case before matching and    -->
-    <!--                         that the entire header name must match the     -->
-    <!--                         pattern.                                       -->
-    <!--                         [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|   -->
-    <!--                          IF-[-0-9A-Z]*|REFERER|USER-AGENT]             -->
-    <!--                                                                        -->
-    <!--   environment-variable- An environment to be set for the execution     -->
-    <!--                         environment of the CGI script. The name of     -->
-    <!--                         variable is taken from the parameter name.     -->
-    <!--                         To configure an environment variable named     -->
-    <!--                         FOO, configure a parameter named               -->
-    <!--                         environment-variable-FOO. The parameter value  -->
-    <!--                         is used as the environment variable value.     -->
-    <!--                         The default is no environment variables.       -->
-    <!--                                                                        -->
-    <!--    parameterEncoding    Name of parameter encoding to be used with     -->
-    <!--                         CGI servlet.                                   -->
-    <!--                         [System.getProperty("file.encoding","UTF-8")]  -->
-    <!--                                                                        -->
-    <!--    passShellEnvironment Should the shell environment variables (if     -->
-    <!--                         any) be passed to the CGI script? [false]      -->
-    <!--                                                                        -->
-    <!--    stderrTimeout        The time (in milliseconds) to wait for the     -->
-    <!--                         reading of stderr to complete before           -->
-    <!--                         terminating the CGI process. [2000]            -->
+        <servlet>
+            <servlet-name>ssi</servlet-name>
+            <servlet-class>
+              org.apache.catalina.ssi.SSIServlet
+            </servlet-class>
+            <init-param>
+              <param-name>buffered</param-name>
+              <param-value>1</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+            <load-on-startup>4</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+    <!-- execution of external applications that conform to the CGI spec      -->
+    <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+    <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+    <!-- executed must be present within the web application.  This servlet   -->
+    <!-- supports the following initialization parameters (default values     -->
+    <!-- are in square brackets):                                             -->
+    <!--                                                                      -->
+    <!--   cgiPathPrefix        The CGI search path will start at             -->
+    <!--                        webAppRootDir + File.separator + this prefix. -->
+    <!--                        If not set, then webAppRootDir is used.       -->
+    <!--                        Recommended value: WEB-INF/cgi                -->
+    <!--                                                                      -->
+    <!--  cmdLineArgumentsDecoded                                             -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual decoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. This is to          -->
+    <!--                        work-around various issues when Java passes   -->
+    <!--                        the arguments to the OS. See the CGI How-To   -->
+    <!--                        for more details. The default varies by       -->
+    <!--                        platform.                                     -->
+    <!--                        Windows: [[\w\Q-.\\/:\E]+]                    -->
+    <!--                        Others:  [.*]                                 -->
+    <!--                        Note that internally the CGI Servlet treats   -->
+    <!--                        [.*] as a special case to improve performance -->
+    <!--                                                                      -->
+    <!--   cmdLineArgumentsEncoded                                            -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual encoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. The default matches -->
+    <!--                        the allowed values defined by RFC3875.        -->
+    <!--                        [[\w\Q%;/?:@&,$-.!~*'()\E]+]                  -->
+    <!--                                                                      -->
+    <!--   enableCmdLineArguments                                             -->
+    <!--                        Are command line parameters generated from    -->
+    <!--                        the query string as per section 4.4 of 3875   -->
+    <!--                        RFC? [false]                                  -->
+    <!--                                                                      -->
+    <!--   executable           Name of the executable used to run the        -->
+    <!--                        script. [perl]                                -->
+    <!--                                                                      -->
+    <!--   envHttpHeaders       A regular expression used to select the HTTP  -->
+    <!--                        headers passed to the CGI process as          -->
+    <!--                        environment variables. Note that headers are  -->
+    <!--                        converted to upper case before matching and   -->
+    <!--                        that the entire header name must match the    -->
+    <!--                        pattern.                                      -->
+    <!--                        [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|  -->
+    <!--                         IF-[-0-9A-Z]*|REFERER|USER-AGENT]            -->
+    <!--                                                                      -->
+    <!--  environment-variable- An environment to be set for the execution    -->
+    <!--                        environment of the CGI script. The name of    -->
+    <!--                        variable is taken from the parameter name.    -->
+    <!--                        To configure an environment variable named    -->
+    <!--                        FOO, configure a parameter named              -->
+    <!--                        environment-variable-FOO. The parameter value -->
+    <!--                        is used as the environment variable value.    -->
+    <!--                        The default is no environment variables.      -->
+    <!--                                                                      -->
+    <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+    <!--                        CGI servlet.                                  -->
+    <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+    <!--                                                                      -->
+    <!--   passShellEnvironment Should the shell environment variables (if    -->
+    <!--                        any) be passed to the CGI script? [false]     -->
+    <!--                                                                      -->
+    <!--   stderrTimeout        The time (in milliseconds) to wait for the    -->
+    <!--                        reading of stderr to complete before          -->
+    <!--                        terminating the CGI process. [2000]           -->
+
     <!--
-    <servlet>
-        <servlet-name>cgi</servlet-name>
-        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
-        <init-param>
-          <param-name>cgiPathPrefix</param-name>
-          <param-value>WEB-INF/cgi</param-value>
-        </init-param>
-        <load-on-startup>5</load-on-startup>
-    </servlet>
- -->
-    <!--  ================ Built In Servlet Mappings =========================  -->
-    <!--  The servlet mappings for the built in servlets defined above.  Note   -->
-    <!--  that, by default, the CGI and SSI servlets are *not* mapped.  You     -->
-    <!--  must uncomment these mappings (or add them to your application's own  -->
-    <!--  web.xml deployment descriptor) to enable these services               -->
-    <!--  The mapping for the default servlet  -->
+        <servlet>
+            <servlet-name>cgi</servlet-name>
+            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+            <init-param>
+              <param-name>cgiPathPrefix</param-name>
+              <param-value>WEB-INF/cgi</param-value>
+            </init-param>
+            <load-on-startup>5</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+    <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+    <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+    <!-- must uncomment these mappings (or add them to your application's own -->
+    <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-    <!--  The mappings for the JSP servlet  -->
+
+    <!-- The mappings for the JSP servlet -->
     <servlet-mapping>
         <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
     </servlet-mapping>
-    <!--  The mapping for the SSI servlet  -->
+
+    <!-- The mapping for the SSI servlet -->
     <!--
-    <servlet-mapping>
-        <servlet-name>ssi</servlet-name>
-        <url-pattern>*.shtml</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  The mapping for the CGI Gateway servlet  -->
+        <servlet-mapping>
+            <servlet-name>ssi</servlet-name>
+            <url-pattern>*.shtml</url-pattern>
+        </servlet-mapping>
+    -->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
     <!--
-    <servlet-mapping>
-        <servlet-name>cgi</servlet-name>
-        <url-pattern>/cgi-bin/*</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  ================== Built In Filter Definitions =====================  -->
-    <!--  A filter that sets various security related HTTP Response headers.    -->
-    <!--  This filter supports the following initialization parameters          -->
-    <!--  (default values are in square brackets):                              -->
-    <!--                                                                        -->
-    <!--    hstsEnabled         Should the HTTP Strict Transport Security       -->
-    <!--                        (HSTS) header be added to the response? See     -->
-    <!--                        RFC 6797 for more information on HSTS. [true]   -->
-    <!--                                                                        -->
-    <!--    hstsMaxAgeSeconds   The max age value that should be used in the    -->
-    <!--                        HSTS header. Negative values will be treated    -->
-    <!--                        as zero. [0]                                    -->
-    <!--                                                                        -->
-    <!--    hstsIncludeSubDomains                                               -->
-    <!--                        Should the includeSubDomains parameter be       -->
-    <!--                        included in the HSTS header.                    -->
-    <!--                                                                        -->
-    <!--    antiClickJackingEnabled                                             -->
-    <!--                        Should the anti click-jacking header            -->
-    <!--                        X-Frame-Options be added to every response?     -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    antiClickJackingOption                                              -->
-    <!--                        What value should be used for the header. Must  -->
-    <!--                        be one of DENY, SAMEORIGIN, ALLOW-FROM          -->
-    <!--                        (case-insensitive). [DENY]                      -->
-    <!--                                                                        -->
-    <!--    antiClickJackingUri IF ALLOW-FROM is used, what URI should be       -->
-    <!--                        allowed? []                                     -->
-    <!--                                                                        -->
-    <!--    blockContentTypeSniffingEnabled                                     -->
-    <!--                        Should the header that blocks content type      -->
-    <!--                        sniffing be added to every response? [true]     -->
+        <servlet-mapping>
+            <servlet-name>cgi</servlet-name>
+            <url-pattern>/cgi-bin/*</url-pattern>
+        </servlet-mapping>
+    -->
+
+
+    <!-- ================== Built In Filter Definitions ===================== -->
+
+    <!-- A filter that sets various security related HTTP Response headers.   -->
+    <!-- This filter supports the following initialization parameters         -->
+    <!-- (default values are in square brackets):                             -->
+    <!--                                                                      -->
+    <!--   hstsEnabled         Should the HTTP Strict Transport Security      -->
+    <!--                       (HSTS) header be added to the response? See    -->
+    <!--                       RFC 6797 for more information on HSTS. [true]  -->
+    <!--                                                                      -->
+    <!--   hstsMaxAgeSeconds   The max age value that should be used in the   -->
+    <!--                       HSTS header. Negative values will be treated   -->
+    <!--                       as zero. [0]                                   -->
+    <!--                                                                      -->
+    <!--   hstsIncludeSubDomains                                              -->
+    <!--                       Should the includeSubDomains parameter be      -->
+    <!--                       included in the HSTS header.                   -->
+    <!--                                                                      -->
+    <!--   antiClickJackingEnabled                                            -->
+    <!--                       Should the anti click-jacking header           -->
+    <!--                       X-Frame-Options be added to every response?    -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   antiClickJackingOption                                             -->
+    <!--                       What value should be used for the header. Must -->
+    <!--                       be one of DENY, SAMEORIGIN, ALLOW-FROM         -->
+    <!--                       (case-insensitive). [DENY]                     -->
+    <!--                                                                      -->
+    <!--   antiClickJackingUri IF ALLOW-FROM is used, what URI should be      -->
+    <!--                       allowed? []                                    -->
+    <!--                                                                      -->
+    <!--   blockContentTypeSniffingEnabled                                    -->
+    <!--                       Should the header that blocks content type     -->
+    <!--                       sniffing be added to every response? [true]    -->
     <!--
-    <filter>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that sets character encoding that is used to decode  -->
-    <!--  parameters in a POST request  -->
+        <filter>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that sets character encoding that is used to decode -->
+    <!-- parameters in a POST request -->
     <!--
-    <filter>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
-        <init-param>
-            <param-name>encoding</param-name>
-            <param-value>UTF-8</param-value>
-        </init-param>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that triggers request parameters parsing and rejects the     -->
-    <!--  request if some parameters were skipped because of parsing errors or  -->
-    <!--  request size limitations.                                             -->
+        <filter>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
+            <init-param>
+                <param-name>encoding</param-name>
+                <param-value>UTF-8</param-value>
+            </init-param>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that triggers request parameters parsing and rejects the    -->
+    <!-- request if some parameters were skipped because of parsing errors or -->
+    <!-- request size limitations.                                            -->
     <!--
-    <filter>
-        <filter-name>failedRequestFilter</filter-name>
-        <filter-class>
-          org.apache.catalina.filters.FailedRequestFilter
-        </filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  NOTE: An SSI Servlet is also available as an alternative SSI          -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing filter, which processes SSI           -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this filter is mapped to the     -->
-    <!--  URL pattern "*.shtml", though it can be mapped to "*" as it will      -->
-    <!--  selectively enable/disable SSI processing based on mime types. For    -->
-    <!--  this to work you will need to uncomment the .shtml mime type          -->
-    <!--  definition towards the bottom of this file.                           -->
-    <!--  The contentType init param allows you to apply SSI processing to JSP  -->
-    <!--  pages, JavaScript, or any other content you wish.  This filter        -->
-    <!--  supports the following initialization parameters (default values are  -->
-    <!--  in square brackets):                                                  -->
-    <!--                                                                        -->
-    <!--    contentType         A regex pattern that must be matched before     -->
-    <!--                        SSI processing is applied.                      -->
-    <!--                        [text/x-server-parsed-html(;.*)?]               -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+        <filter>
+            <filter-name>failedRequestFilter</filter-name>
+            <filter-class>
+              org.apache.catalina.filters.FailedRequestFilter
+            </filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+
+    <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing filter, which processes SSI          -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+    <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+    <!-- selectively enable/disable SSI processing based on mime types. For   -->
+    <!-- this to work you will need to uncomment the .shtml mime type         -->
+    <!-- definition towards the bottom of this file.                          -->
+    <!-- The contentType init param allows you to apply SSI processing to JSP -->
+    <!-- pages, JavaScript, or any other content you wish.  This filter       -->
+    <!-- supports the following initialization parameters (default values are -->
+    <!-- in square brackets):                                                 -->
+    <!--                                                                      -->
+    <!--   contentType         A regex pattern that must be matched before    -->
+    <!--                       SSI processing is applied.                     -->
+    <!--                       [text/x-server-parsed-html(;.*)?]              -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <filter>
-        <filter-name>ssi</filter-name>
-        <filter-class>
-          org.apache.catalina.ssi.SSIFilter
-        </filter-class>
-        <init-param>
-          <param-name>contentType</param-name>
-          <param-value>text/x-server-parsed-html(;.*)?</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-    </filter>
- -->
-    <!--  ==================== Built In Filter Mappings ======================  -->
-    <!--  The mapping for the HTTP header security Filter  -->
+        <filter>
+            <filter-name>ssi</filter-name>
+            <filter-class>
+              org.apache.catalina.ssi.SSIFilter
+            </filter-class>
+            <init-param>
+              <param-name>contentType</param-name>
+              <param-value>text/x-server-parsed-html(;.*)?</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+        </filter>
+    -->
+
+
+    <!-- ==================== Built In Filter Mappings ====================== -->
+
+    <!-- The mapping for the HTTP header security Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <url-pattern>/*</url-pattern>
-        <dispatcher>REQUEST</dispatcher>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Set Character Encoding Filter  -->
+        <filter-mapping>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <url-pattern>/*</url-pattern>
+            <dispatcher>REQUEST</dispatcher>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Set Character Encoding Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Failed Request Filter  -->
+        <filter-mapping>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Failed Request Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>failedRequestFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the SSI Filter  -->
+        <filter-mapping>
+            <filter-name>failedRequestFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the SSI Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>ssi</filter-name>
-        <url-pattern>*.shtml</url-pattern>
-    </filter-mapping>
- -->
-    <!--  ==================== Default Session Configuration =================  -->
-    <!--  You can set the default session timeout (in minutes) for all newly    -->
-    <!--  created sessions by modifying the value below.                        -->
+        <filter-mapping>
+            <filter-name>ssi</filter-name>
+            <url-pattern>*.shtml</url-pattern>
+        </filter-mapping>
+    -->
+
+
+    <!-- ==================== Default Session Configuration ================= -->
+    <!-- You can set the default session timeout (in minutes) for all newly   -->
+    <!-- created sessions by modifying the value below.                       -->
+
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
-    <!--  ===================== Default MIME Type Mappings ===================  -->
-    <!--  When serving static resources, Tomcat will automatically generate     -->
-    <!--  a "Content-Type" header based on the resource's filename extension,   -->
-    <!--  based on these mappings.  Additional mappings can be added here (to   -->
-    <!--  apply to all web applications), or in your own application's web.xml  -->
-    <!--  deployment descriptor.                                                -->
-    <!--  Note: Extensions are always matched in a case-insensitive manner.     -->
+
+
+    <!-- ===================== Default MIME Type Mappings =================== -->
+    <!-- When serving static resources, Tomcat will automatically generate    -->
+    <!-- a "Content-Type" header based on the resource's filename extension,  -->
+    <!-- based on these mappings.  Additional mappings can be added here (to  -->
+    <!-- apply to all web applications), or in your own application's web.xml -->
+    <!-- deployment descriptor.                                               -->
+    <!-- Note: Extensions are always matched in a case-insensitive manner.    -->
+
     <mime-mapping>
         <extension>123</extension>
         <mime-type>application/vnd.lotus-1-2-3</mime-type>
@@ -1727,6 +1775,10 @@
         <extension>ggb</extension>
         <mime-type>application/vnd.geogebra.file</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>ggs</extension>
+        <mime-type>application/vnd.geogebra.slides</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>ggt</extension>
         <mime-type>application/vnd.geogebra.tool</mime-type>
@@ -2081,7 +2133,7 @@
     </mime-mapping>
     <mime-mapping>
         <extension>js</extension>
-        <mime-type>application/javascript</mime-type>
+        <mime-type>text/javascript</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>jsf</extension>
@@ -2431,6 +2483,10 @@
         <extension>mjp2</extension>
         <mime-type>video/mj2</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>mjs</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>mk3d</extension>
         <mime-type>video/x-matroska</mime-type>
@@ -2772,17 +2828,17 @@
         <mime-type>application/oda</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Database  -->
+        <!-- OpenDocument Database -->
         <extension>odb</extension>
         <mime-type>application/vnd.oasis.opendocument.database</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Chart  -->
+        <!-- OpenDocument Chart -->
         <extension>odc</extension>
         <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Formula  -->
+        <!-- OpenDocument Formula -->
         <extension>odf</extension>
         <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
     </mime-mapping>
@@ -2791,32 +2847,32 @@
         <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing  -->
+        <!-- OpenDocument Drawing -->
         <extension>odg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Image  -->
+        <!-- OpenDocument Image -->
         <extension>odi</extension>
         <mime-type>application/vnd.oasis.opendocument.image</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Master Document  -->
+        <!-- OpenDocument Master Document -->
         <extension>odm</extension>
         <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation  -->
+        <!-- OpenDocument Presentation -->
         <extension>odp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet  -->
+        <!-- OpenDocument Spreadsheet -->
         <extension>ods</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text  -->
+        <!-- OpenDocument Text -->
         <extension>odt</extension>
         <mime-type>application/vnd.oasis.opendocument.text</mime-type>
     </mime-mapping>
@@ -2833,7 +2889,7 @@
         <mime-type>video/ogg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  xiph mime types  -->
+        <!-- xiph mime types -->
         <extension>ogx</extension>
         <mime-type>application/ogg</mime-type>
     </mime-mapping>
@@ -2869,6 +2925,10 @@
         <extension>oprc</extension>
         <mime-type>application/vnd.palm</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>opus</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>org</extension>
         <mime-type>application/vnd.lotus-organizer</mime-type>
@@ -2890,12 +2950,12 @@
         <mime-type>font/otf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing Template  -->
+        <!-- OpenDocument Drawing Template -->
         <extension>otg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  HTML Document Template  -->
+        <!-- HTML Document Template -->
         <extension>oth</extension>
         <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
     </mime-mapping>
@@ -2904,17 +2964,17 @@
         <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation Template  -->
+        <!-- OpenDocument Presentation Template -->
         <extension>otp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet Template  -->
+        <!-- OpenDocument Spreadsheet Template -->
         <extension>ots</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text Template  -->
+        <!-- OpenDocument Text Template -->
         <extension>ott</extension>
         <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
     </mime-mapping>
@@ -3539,7 +3599,7 @@
         <extension>shtml</extension>
         <mime-type>text/x-server-parsed-html</mime-type>
     </mime-mapping>
-     -->
+    -->
     <mime-mapping>
         <extension>sid</extension>
         <mime-type>image/x-mrsid-image</mime-type>
@@ -4225,7 +4285,7 @@
         <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Wireless Bitmap  -->
+        <!-- Wireless Bitmap -->
         <extension>wbmp</extension>
         <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
@@ -4290,22 +4350,22 @@
         <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Source  -->
+        <!-- WML Source -->
         <extension>wml</extension>
         <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML  -->
+        <!-- Compiled WML -->
         <extension>wmlc</extension>
         <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Script Source  -->
+        <!-- WML Script Source -->
         <extension>wmls</extension>
         <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML Script  -->
+        <!-- Compiled WML Script -->
         <extension>wmlsc</extension>
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
@@ -4673,22 +4733,25 @@
         <extension>zmm</extension>
         <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
     </mime-mapping>
-    <!--  ==================== Default Welcome File List =====================  -->
-    <!--  When a request URI refers to a directory, the default servlet looks   -->
-    <!--  for a "welcome file" within that directory and, if present, to the    -->
-    <!--  corresponding resource URI for display.                               -->
-    <!--  If no welcome files are present, the default servlet either serves a  -->
-    <!--  directory listing (see default servlet configuration on how to        -->
-    <!--  customize) or returns a 404 status, depending on the value of the     -->
-    <!--  listings setting.                                                     -->
-    <!--                                                                        -->
-    <!--  If you define welcome files in your own application's web.xml         -->
-    <!--  deployment descriptor, that list *replaces* the list configured       -->
-    <!--  here, so be sure to include any of the default values that you wish   -->
-    <!--  to use within your application.                                        -->
+
+    <!-- ==================== Default Welcome File List ===================== -->
+    <!-- When a request URI refers to a directory, the default servlet looks  -->
+    <!-- for a "welcome file" within that directory and, if present, to the   -->
+    <!-- corresponding resource URI for display.                              -->
+    <!-- If no welcome files are present, the default servlet either serves a -->
+    <!-- directory listing (see default servlet configuration on how to       -->
+    <!-- customize) or returns a 404 status, depending on the value of the    -->
+    <!-- listings setting.                                                    -->
+    <!--                                                                      -->
+    <!-- If you define welcome files in your own application's web.xml        -->
+    <!-- deployment descriptor, that list *replaces* the list configured      -->
+    <!-- here, so be sure to include any of the default values that you wish  -->
+    <!-- to use within your application.                                      -->
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
-</web-app>
\ No newline at end of file
+
+</web-app>
diff --git a/boms/tomee-plume/src/main/resources/tomee/conf/web.xml b/boms/tomee-plume/src/main/resources/tomee/conf/web.xml
index 1c6e849dea..1f9a07c6c8 100644
--- a/boms/tomee-plume/src/main/resources/tomee/conf/web.xml
+++ b/boms/tomee-plume/src/main/resources/tomee/conf/web.xml
@@ -14,95 +14,109 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+-->
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-         version="4.0">
-    <!--  ======================== Introduction ==============================  -->
-    <!--  This document defines default values for *all* web applications       -->
-    <!--  loaded into this instance of Tomcat.  As each application is          -->
-    <!--  deployed, this file is processed, followed by the                     -->
-    <!--  "/WEB-INF/web.xml" deployment descriptor from your own                -->
-    <!--  applications.                                                         -->
-    <!--                                                                        -->
-    <!--  WARNING:  Do not configure application-specific resources here!       -->
-    <!--  They should go in the "/WEB-INF/web.xml" file in your application.    -->
-    <!--  ================== Built In Servlet Definitions ====================  -->
-    <!--  The default servlet for all web applications, that serves static      -->
-    <!--  resources.  It processes all requests that are not mapped to other    -->
-    <!--  servlets with servlet mappings (defined either here or in your own    -->
-    <!--  web.xml file).  This servlet supports the following initialization    -->
-    <!--  parameters (default values are in square brackets):                   -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet. Useful values are 0, 1, and    -->
-    <!--                        11 where higher values mean more detail. [0]    -->
-    <!--                                                                        -->
-    <!--    fileEncoding        Encoding to be used to read static resources    -->
-    <!--                        [platform default]                              -->
-    <!--                                                                        -->
-    <!--    useBomIfPresent     If a static file contains a byte order mark     -->
-    <!--                        (BOM), should this be used to determine the     -->
-    <!--                        file encoding in preference to fileEncoding.    -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    input               Input buffer size (in bytes) when reading       -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    listings            Should directory listings be produced if there  -->
-    <!--                        is no welcome file in this directory?  [false]  -->
-    <!--                        WARNING: Listings for directories with many     -->
-    <!--                        entries can be slow and may consume             -->
-    <!--                        significant proportions of server resources.    -->
-    <!--                                                                        -->
-    <!--    output              Output buffer size (in bytes) when writing      -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    readonly            Is this context "read only", so HTTP            -->
-    <!--                        commands like PUT and DELETE are                -->
-    <!--                        rejected?  [true]                               -->
-    <!--                                                                        -->
-    <!--    readmeFile          File to display together with the directory     -->
-    <!--                        contents. [null]                                -->
-    <!--                                                                        -->
-    <!--    sendfileSize        If the connector used supports sendfile, this   -->
-    <!--                        represents the minimal file size in KB for      -->
-    <!--                        which sendfile will be used. Use a negative     -->
-    <!--                        value to always disable sendfile.  [48]         -->
-    <!--                                                                        -->
-    <!--    useAcceptRanges     Should the Accept-Ranges header be included     -->
-    <!--                        in responses where appropriate? [true]          -->
-    <!--                                                                        -->
-    <!--   For directory listing customization. Checks localXsltFile, then      -->
-    <!--   globalXsltFile, then defaults to original behavior.                  -->
-    <!--                                                                        -->
-    <!--    localXsltFile       Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet residing    -->
-    <!--                        in that directory. This overrides               -->
-    <!--                        contextXsltFile and globalXsltFile[null]        -->
-    <!--                                                                        -->
-    <!--    contextXsltFile     Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet which is    -->
-    <!--                        relative to the context root. This overrides    -->
-    <!--                        globalXsltFile[null]                            -->
-    <!--                                                                        -->
-    <!--    globalXsltFile      Site wide configuration version of              -->
-    <!--                        localXsltFile. This argument must either be an  -->
-    <!--                        absolute or relative (to either                 -->
-    <!--                        $CATALINA_BASE/conf or $CATALINA_HOME/conf)     -->
-    <!--                        path that points to a location below either     -->
-    <!--                        $CATALINA_BASE/conf (checked first) or          -->
-    <!--                        $CATALINA_HOME/conf (checked second).[null]     -->
-    <!--                                                                        -->
-    <!--    showServerInfo      Should server information be presented in the   -->
-    <!--                        response sent to clients when directory         -->
-    <!--                        listings is enabled? [true]                     -->
-    <!--                                                                        -->
-    <!--    allowPartialPut     Should the server treat an HTTP PUT request     -->
-    <!--                        with a Range header as a partial PUT? Note      -->
-    <!--                        that RFC 7233 clarified that Range headers are  -->
-    <!--                        only valid for GET requests. [true]             -->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+         version="6.0">
+
+    <!-- ======================== Introduction ============================== -->
+    <!-- This document defines default values for *all* web applications      -->
+    <!-- loaded into this instance of Tomcat.  As each application is         -->
+    <!-- deployed, this file is processed, followed by the                    -->
+    <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+    <!-- applications.                                                        -->
+    <!--                                                                      -->
+    <!-- WARNING:  Do not configure application-specific resources here!      -->
+    <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+    <!-- Set the default request and response character encodings to UTF-8.   -->
+    <request-character-encoding>UTF-8</request-character-encoding>
+    <response-character-encoding>UTF-8</response-character-encoding>
+
+
+    <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+    <!-- The default servlet for all web applications, that serves static     -->
+    <!-- resources.  It processes all requests that are not mapped to other   -->
+    <!-- servlets with servlet mappings (defined either here or in your own   -->
+    <!-- web.xml file).  This servlet supports the following initialization   -->
+    <!-- parameters (default values are in square brackets):                  -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet. Useful values are 0, 1, and   -->
+    <!--                       11 where higher values mean more detail. [0]   -->
+    <!--                                                                      -->
+    <!--   fileEncoding        Encoding to be used to read static resources   -->
+    <!--                       [platform default]                             -->
+    <!--                                                                      -->
+    <!--   useBomIfPresent     If a static file contains a byte order mark    -->
+    <!--                       (BOM), should this be used to determine the    -->
+    <!--                       file encoding in preference to fileEncoding.   -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   input               Input buffer size (in bytes) when reading      -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   listings            Should directory listings be produced if there -->
+    <!--                       is no welcome file in this directory?  [false] -->
+    <!--                       WARNING: Listings for directories with many    -->
+    <!--                       entries can be slow and may consume            -->
+    <!--                       significant proportions of server resources.   -->
+    <!--                                                                      -->
+    <!--   output              Output buffer size (in bytes) when writing     -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   readonly            Is this context "read only", so HTTP           -->
+    <!--                       commands like PUT and DELETE are               -->
+    <!--                       rejected?  [true]                              -->
+    <!--                                                                      -->
+    <!--   readmeFile          File to display together with the directory    -->
+    <!--                       contents. [null]                               -->
+    <!--                                                                      -->
+    <!--   sendfileSize        If the connector used supports sendfile, this  -->
+    <!--                       represents the minimal file size in KiB for    -->
+    <!--                       which sendfile will be used. Use a negative    -->
+    <!--                       value to always disable sendfile.  [48]        -->
+    <!--                                                                      -->
+    <!--   useAcceptRanges     Should the Accept-Ranges header be included    -->
+    <!--                       in responses where appropriate? [true]         -->
+    <!--                                                                      -->
+    <!--  For directory listing customization. Checks localXsltFile, then     -->
+    <!--  globalXsltFile, then defaults to original behavior.                 -->
+    <!--                                                                      -->
+    <!--   localXsltFile       Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet residing   -->
+    <!--                       in that directory. This overrides              -->
+    <!--                       contextXsltFile and globalXsltFile[null]       -->
+    <!--                                                                      -->
+    <!--   contextXsltFile     Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet which is   -->
+    <!--                       relative to the context root. This overrides   -->
+    <!--                       globalXsltFile[null]                           -->
+    <!--                                                                      -->
+    <!--   globalXsltFile      Site wide configuration version of             -->
+    <!--                       localXsltFile. This argument must either be an -->
+    <!--                       absolute or relative (to either                -->
+    <!--                       $CATALINA_BASE/conf or $CATALINA_HOME/conf)    -->
+    <!--                       path that points to a location below either    -->
+    <!--                       $CATALINA_BASE/conf (checked first) or         -->
+    <!--                       $CATALINA_HOME/conf (checked second).[null]    -->
+    <!--                                                                      -->
+    <!--   showServerInfo      Should server information be presented in the  -->
+    <!--                       response sent to clients when directory        -->
+    <!--                       listings is enabled? [true]                    -->
+    <!--                                                                      -->
+    <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
+    <!--                       with a Range header as a partial PUT? Note     -->
+    <!--                       that while RFC 7233 clarified that Range       -->
+    <!--                       headers only valid for GET requests, RFC 9110  -->
+    <!--                       (which obsoletes RFC 7233) now allows partial  -->
+    <!--                       puts. [true]                                   -->
+
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
@@ -116,144 +130,143 @@
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
-    <!--  The JSP page compiler and execution servlet, which is the mechanism   -->
-    <!--  used by Tomcat to support JSP pages.  Traditionally, this servlet     -->
-    <!--  is mapped to the URL pattern "*.jsp".  This servlet supports the      -->
-    <!--  following initialization parameters (default values are in square     -->
-    <!--  brackets):                                                            -->
-    <!--                                                                        -->
-    <!--    checkInterval       If development is false and checkInterval is    -->
-    <!--                        greater than zero, background compilations are  -->
-    <!--                        enabled. checkInterval is the time in seconds   -->
-    <!--                        between checks to see if a JSP page (and its    -->
-    <!--                        dependent files) needs to  be recompiled. [0]   -->
-    <!--                                                                        -->
-    <!--    classdebuginfo      Should the class file be compiled with          -->
-    <!--                        debugging information?  [true]                  -->
-    <!--                                                                        -->
-    <!--    classpath           What class path should I use while compiling    -->
-    <!--                        generated servlets?  [Created dynamically       -->
-    <!--                        based on the current web application]           -->
-    <!--                                                                        -->
-    <!--    compiler            Which compiler Ant should use to compile JSP    -->
-    <!--                        pages.  See the jasper documentation for more   -->
-    <!--                        information.                                    -->
-    <!--                                                                        -->
-    <!--    compilerSourceVM    Compiler source VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    compilerTargetVM    Compiler target VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    development         Is Jasper used in development mode? If true,    -->
-    <!--                        the frequency at which JSPs are checked for     -->
-    <!--                        modification may be specified via the           -->
-    <!--                        modificationTestInterval parameter. [true]      -->
-    <!--                                                                        -->
-    <!--    displaySourceFragment                                               -->
-    <!--                        Should a source fragment be included in         -->
-    <!--                        exception messages? [true]                      -->
-    <!--                                                                        -->
-    <!--    dumpSmap            Should the SMAP info for JSR45 debugging be     -->
-    <!--                        dumped to a file? [false]                       -->
-    <!--                        False if suppressSmap is true                   -->
-    <!--                                                                        -->
-    <!--    enablePooling       Determines whether tag handler pooling is       -->
-    <!--                        enabled. This is a compilation option. It will  -->
-    <!--                        not alter the behaviour of JSPs that have       -->
-    <!--                        already been compiled. [true]                   -->
-    <!--                                                                        -->
-    <!--    engineOptionsClass  Allows specifying the Options class used to     -->
-    <!--                        configure Jasper. If not present, the default   -->
-    <!--                        EmbeddedServletOptions will be used.            -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    errorOnUseBeanInvalidClassAttribute                                 -->
-    <!--                        Should Jasper issue an error when the value of  -->
-    <!--                        the class attribute in an useBean action is     -->
-    <!--                        not a valid bean class?  [true]                 -->
-    <!--                                                                        -->
-    <!--    fork                Tell Ant to fork compiles of JSP pages so that  -->
-    <!--                        a separate JVM is used for JSP page compiles    -->
-    <!--                        from the one Tomcat is running in. [true]       -->
-    <!--                                                                        -->
-    <!--    genStringAsCharArray                                                -->
-    <!--                        Should text strings be generated as char        -->
-    <!--                        arrays, to improve performance in some cases?   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    ieClassId           The class-id value to be sent to Internet       -->
-    <!--                        Explorer when using <jsp:plugin> tags.          -->
-    <!--                        [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]    -->
-    <!--                                                                        -->
-    <!--    javaEncoding        Java file encoding to use for generating java   -->
-    <!--                        source files. [UTF8]                            -->
-    <!--                                                                        -->
-    <!--    keepgenerated       Should we keep the generated Java source code   -->
-    <!--                        for each page instead of deleting it? [true]    -->
-    <!--                                                                        -->
-    <!--    mappedfile          Should we generate static content with one      -->
-    <!--                        print statement per input line, to ease         -->
-    <!--                        debugging?  [true]                              -->
-    <!--                                                                        -->
-    <!--    maxLoadedJsps       The maximum number of JSPs that will be loaded  -->
-    <!--                        for a web application. If more than this        -->
-    <!--                        number of JSPs are loaded, the least recently   -->
-    <!--                        used JSPs will be unloaded so that the number   -->
-    <!--                        of JSPs loaded at any one time does not exceed  -->
-    <!--                        this limit. A value of zero or less indicates   -->
-    <!--                        no limit. [-1]                                  -->
-    <!--                                                                        -->
-    <!--    jspIdleTimeout      The amount of time in seconds a JSP can be      -->
-    <!--                        idle before it is unloaded. A value of zero     -->
-    <!--                        or less indicates never unload. [-1]            -->
-    <!--                                                                        -->
-    <!--    modificationTestInterval                                            -->
-    <!--                        Causes a JSP (and its dependent files) to not   -->
-    <!--                        be checked for modification during the          -->
-    <!--                        specified time interval (in seconds) from the   -->
-    <!--                        last time the JSP was checked for               -->
-    <!--                        modification. A value of 0 will cause the JSP   -->
-    <!--                        to be checked on every access.                  -->
-    <!--                        Used in development mode only. [4]              -->
-    <!--                                                                        -->
-    <!--    recompileOnFail     If a JSP compilation fails should the           -->
-    <!--                        modificationTestInterval be ignored and the     -->
-    <!--                        next access trigger a re-compilation attempt?   -->
-    <!--                        Used in development mode only and is disabled   -->
-    <!--                        by default as compilation may be expensive and  -->
-    <!--                        could lead to excessive resource usage.         -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    scratchdir          What scratch directory should we use when       -->
-    <!--                        compiling JSP pages?  [default work directory   -->
-    <!--                        for the current web application]                -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    suppressSmap        Should the generation of SMAP info for JSR45    -->
-    <!--                        debugging be suppressed?  [false]               -->
-    <!--                                                                        -->
-    <!--    trimSpaces          Should template text that consists entirely of  -->
-    <!--                        whitespace be removed from the output (true),   -->
-    <!--                        replaced with a single space (single) or left   -->
-    <!--                        unchanged (false)? Note that if a JSP page or   -->
-    <!--                        tag file specifies a trimDirectiveWhitespaces   -->
-    <!--                        value of true, that will take precedence over   -->
-    <!--                        this configuration setting for that page/tag.   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    xpoweredBy          Determines whether X-Powered-By response        -->
-    <!--                        header is added by generated servlet.  [false]  -->
-    <!--                                                                        -->
-    <!--    strictQuoteEscaping When scriptlet expressions are used for         -->
-    <!--                        attribute values, should the rules in JSP.1.6   -->
-    <!--                        for the escaping of quote characters be         -->
-    <!--                        strictly applied? [true]                        -->
-    <!--                                                                        -->
-    <!--    quoteAttributeEL    When EL is used in an attribute value on a      -->
-    <!--                        JSP page should the rules for quoting of        -->
-    <!--                        attributes described in JSP.1.6 be applied to   -->
-    <!--                        the expression? [true]                          -->
+
+
+    <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+    <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+    <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+    <!-- following initialization parameters (default values are in square    -->
+    <!-- brackets):                                                           -->
+    <!--                                                                      -->
+    <!--   checkInterval       If development is false and checkInterval is   -->
+    <!--                       greater than zero, background compilations are -->
+    <!--                       enabled. checkInterval is the time in seconds  -->
+    <!--                       between checks to see if a JSP page (and its   -->
+    <!--                       dependent files) needs to  be recompiled. [0]  -->
+    <!--                                                                      -->
+    <!--   classdebuginfo      Should the class file be compiled with         -->
+    <!--                       debugging information?  [true]                 -->
+    <!--                                                                      -->
+    <!--   classpath           What class path should I use while compiling   -->
+    <!--                       generated servlets?  [Created dynamically      -->
+    <!--                       based on the current web application]          -->
+    <!--                                                                      -->
+    <!--   compiler            Which compiler Ant should use to compile JSP   -->
+    <!--                       pages.  See the jasper documentation for more  -->
+    <!--                       information.                                   -->
+    <!--                                                                      -->
+    <!--   compilerSourceVM    Compiler source VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   compilerTargetVM    Compiler target VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   development         Is Jasper used in development mode? If true,   -->
+    <!--                       the frequency at which JSPs are checked for    -->
+    <!--                       modification may be specified via the          -->
+    <!--                       modificationTestInterval parameter. [true]     -->
+    <!--                                                                      -->
+    <!--   displaySourceFragment                                              -->
+    <!--                       Should a source fragment be included in        -->
+    <!--                       exception messages? [true]                     -->
+    <!--                                                                      -->
+    <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+    <!--                       dumped to a file? [false]                      -->
+    <!--                       False if suppressSmap is true                  -->
+    <!--                                                                      -->
+    <!--   enablePooling       Determines whether tag handler pooling is      -->
+    <!--                       enabled. This is a compilation option. It will -->
+    <!--                       not alter the behaviour of JSPs that have      -->
+    <!--                       already been compiled. [true]                  -->
+    <!--                                                                      -->
+    <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+    <!--                       configure Jasper. If not present, the default  -->
+    <!--                       EmbeddedServletOptions will be used.           -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   errorOnUseBeanInvalidClassAttribute                                -->
+    <!--                       Should Jasper issue an error when the value of -->
+    <!--                       the class attribute in an useBean action is    -->
+    <!--                       not a valid bean class?  [true]                -->
+    <!--                                                                      -->
+    <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+    <!--                       a separate JVM is used for JSP page compiles   -->
+    <!--                       from the one Tomcat is running in. [true]      -->
+    <!--                                                                      -->
+    <!--   genStringAsCharArray                                               -->
+    <!--                       Should text strings be generated as char       -->
+    <!--                       arrays, to improve performance in some cases?  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   javaEncoding        Java file encoding to use for generating java  -->
+    <!--                       source files. [UTF8]                           -->
+    <!--                                                                      -->
+    <!--   keepgenerated       Should we keep the generated Java source code  -->
+    <!--                       for each page instead of deleting it? [true]   -->
+    <!--                                                                      -->
+    <!--   mappedfile          Should we generate static content with one     -->
+    <!--                       print statement per input line, to ease        -->
+    <!--                       debugging?  [true]                             -->
+    <!--                                                                      -->
+    <!--   maxLoadedJsps       The maximum number of JSPs that will be loaded -->
+    <!--                       for a web application. If more than this       -->
+    <!--                       number of JSPs are loaded, the least recently  -->
+    <!--                       used JSPs will be unloaded so that the number  -->
+    <!--                       of JSPs loaded at any one time does not exceed -->
+    <!--                       this limit. A value of zero or less indicates  -->
+    <!--                       no limit. [-1]                                 -->
+    <!--                                                                      -->
+    <!--   jspIdleTimeout      The amount of time in seconds a JSP can be     -->
+    <!--                       idle before it is unloaded. A value of zero    -->
+    <!--                       or less indicates never unload. [-1]           -->
+    <!--                                                                      -->
+    <!--   modificationTestInterval                                           -->
+    <!--                       Causes a JSP (and its dependent files) to not  -->
+    <!--                       be checked for modification during the         -->
+    <!--                       specified time interval (in seconds) from the  -->
+    <!--                       last time the JSP was checked for              -->
+    <!--                       modification. A value of 0 will cause the JSP  -->
+    <!--                       to be checked on every access.                 -->
+    <!--                       Used in development mode only. [4]             -->
+    <!--                                                                      -->
+    <!--   recompileOnFail     If a JSP compilation fails should the          -->
+    <!--                       modificationTestInterval be ignored and the    -->
+    <!--                       next access trigger a re-compilation attempt?  -->
+    <!--                       Used in development mode only and is disabled  -->
+    <!--                       by default as compilation may be expensive and -->
+    <!--                       could lead to excessive resource usage.        -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   scratchdir          What scratch directory should we use when      -->
+    <!--                       compiling JSP pages?  [default work directory  -->
+    <!--                       for the current web application]               -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+    <!--                       debugging be suppressed?  [false]              -->
+    <!--                                                                      -->
+    <!--   trimSpaces          Should template text that consists entirely of -->
+    <!--                       whitespace be removed from the output (true),  -->
+    <!--                       replaced with a single space (single) or left  -->
+    <!--                       unchanged (false)? Note that if a JSP page or  -->
+    <!--                       tag file specifies a trimDirectiveWhitespaces  -->
+    <!--                       value of true, that will take precedence over  -->
+    <!--                       this configuration setting for that page/tag.  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+    <!--                       header is added by generated servlet.  [false] -->
+    <!--                                                                      -->
+    <!--   strictQuoteEscaping When scriptlet expressions are used for        -->
+    <!--                       attribute values, should the rules in JSP.1.6  -->
+    <!--                       for the escaping of quote characters be        -->
+    <!--                       strictly applied? [true]                       -->
+    <!--                                                                      -->
+    <!--   quoteAttributeEL    When EL is used in an attribute value on a     -->
+    <!--                       JSP page should the rules for quoting of       -->
+    <!--                       attributes described in JSP.1.6 be applied to  -->
+    <!--                       the expression? [true]                         -->
+
     <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
@@ -272,337 +285,372 @@
         </init-param>
         <load-on-startup>3</load-on-startup>
     </servlet>
-    <!--  NOTE: An SSI Filter is also available as an alternative SSI           -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing servlet, which processes SSI          -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this servlet is mapped to the    -->
-    <!--  URL pattern "*.shtml".  This servlet supports the following           -->
-    <!--  initialization parameters (default values are in square brackets):    -->
-    <!--                                                                        -->
-    <!--    buffered            Should output from this servlet be buffered?    -->
-    <!--                        (0=false, 1=true)  [0]                          -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    inputEncoding       The encoding to assume for SSI resources if     -->
-    <!--                        one is not available from the resource.         -->
-    <!--                        [Platform default]                              -->
-    <!--                                                                        -->
-    <!--    outputEncoding      The encoding to use for the page that results   -->
-    <!--                        from the SSI processing. [UTF-8]                -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+
+
+    <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing servlet, which processes SSI         -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+    <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+    <!-- initialization parameters (default values are in square brackets):   -->
+    <!--                                                                      -->
+    <!--   buffered            Should output from this servlet be buffered?   -->
+    <!--                       (0=false, 1=true)  [0]                         -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+    <!--                       one is not available from the resource.        -->
+    <!--                       [Platform default]                             -->
+    <!--                                                                      -->
+    <!--   outputEncoding      The encoding to use for the page that results  -->
+    <!--                       from the SSI processing. [UTF-8]               -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <servlet>
-        <servlet-name>ssi</servlet-name>
-        <servlet-class>
-          org.apache.catalina.ssi.SSIServlet
-        </servlet-class>
-        <init-param>
-          <param-name>buffered</param-name>
-          <param-value>1</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
- -->
-    <!--  Common Gateway Includes (CGI) processing servlet, which supports      -->
-    <!--  execution of external applications that conform to the CGI spec       -->
-    <!--  requirements.  Typically, this servlet is mapped to the URL pattern   -->
-    <!--  "/cgi-bin/*", which means that any CGI applications that are          -->
-    <!--  executed must be present within the web application.  This servlet    -->
-    <!--  supports the following initialization parameters (default values      -->
-    <!--  are in square brackets):                                              -->
-    <!--                                                                        -->
-    <!--    cgiPathPrefix        The CGI search path will start at              -->
-    <!--                         webAppRootDir + File.separator + this prefix.  -->
-    <!--                         If not set, then webAppRootDir is used.        -->
-    <!--                         Recommended value: WEB-INF/cgi                 -->
-    <!--                                                                        -->
-    <!--   cmdLineArgumentsDecoded                                              -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual decoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. This is to           -->
-    <!--                         work-around various issues when Java passes    -->
-    <!--                         the arguments to the OS. See the CGI How-To    -->
-    <!--                         for more details. The default varies by        -->
-    <!--                         platform.                                      -->
-    <!--                         Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+]             -->
-    <!--                         Others:  [.*]                                  -->
-    <!--                         Note that internally the CGI Servlet treats    -->
-    <!--                         [.*] as a special case to improve performance  -->
-    <!--                                                                        -->
-    <!--    cmdLineArgumentsEncoded                                             -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual encoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. The default matches  -->
-    <!--                         the allowed values defined by RFC3875.         -->
-    <!--                         [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+]           -->
-    <!--                                                                        -->
-    <!--    enableCmdLineArguments                                              -->
-    <!--                         Are command line parameters generated from     -->
-    <!--                         the query string as per section 4.4 of 3875    -->
-    <!--                         RFC? [false]                                   -->
-    <!--                                                                        -->
-    <!--    executable           Name of the executable used to run the         -->
-    <!--                         script. [perl]                                 -->
-    <!--                                                                        -->
-    <!--    envHttpHeaders       A regular expression used to select the HTTP   -->
-    <!--                         headers passed to the CGI process as           -->
-    <!--                         environment variables. Note that headers are   -->
-    <!--                         converted to upper case before matching and    -->
-    <!--                         that the entire header name must match the     -->
-    <!--                         pattern.                                       -->
-    <!--                         [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|   -->
-    <!--                          IF-[-0-9A-Z]*|REFERER|USER-AGENT]             -->
-    <!--                                                                        -->
-    <!--   environment-variable- An environment to be set for the execution     -->
-    <!--                         environment of the CGI script. The name of     -->
-    <!--                         variable is taken from the parameter name.     -->
-    <!--                         To configure an environment variable named     -->
-    <!--                         FOO, configure a parameter named               -->
-    <!--                         environment-variable-FOO. The parameter value  -->
-    <!--                         is used as the environment variable value.     -->
-    <!--                         The default is no environment variables.       -->
-    <!--                                                                        -->
-    <!--    parameterEncoding    Name of parameter encoding to be used with     -->
-    <!--                         CGI servlet.                                   -->
-    <!--                         [System.getProperty("file.encoding","UTF-8")]  -->
-    <!--                                                                        -->
-    <!--    passShellEnvironment Should the shell environment variables (if     -->
-    <!--                         any) be passed to the CGI script? [false]      -->
-    <!--                                                                        -->
-    <!--    stderrTimeout        The time (in milliseconds) to wait for the     -->
-    <!--                         reading of stderr to complete before           -->
-    <!--                         terminating the CGI process. [2000]            -->
+        <servlet>
+            <servlet-name>ssi</servlet-name>
+            <servlet-class>
+              org.apache.catalina.ssi.SSIServlet
+            </servlet-class>
+            <init-param>
+              <param-name>buffered</param-name>
+              <param-value>1</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+            <load-on-startup>4</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+    <!-- execution of external applications that conform to the CGI spec      -->
+    <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+    <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+    <!-- executed must be present within the web application.  This servlet   -->
+    <!-- supports the following initialization parameters (default values     -->
+    <!-- are in square brackets):                                             -->
+    <!--                                                                      -->
+    <!--   cgiPathPrefix        The CGI search path will start at             -->
+    <!--                        webAppRootDir + File.separator + this prefix. -->
+    <!--                        If not set, then webAppRootDir is used.       -->
+    <!--                        Recommended value: WEB-INF/cgi                -->
+    <!--                                                                      -->
+    <!--  cmdLineArgumentsDecoded                                             -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual decoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. This is to          -->
+    <!--                        work-around various issues when Java passes   -->
+    <!--                        the arguments to the OS. See the CGI How-To   -->
+    <!--                        for more details. The default varies by       -->
+    <!--                        platform.                                     -->
+    <!--                        Windows: [[\w\Q-.\\/:\E]+]                    -->
+    <!--                        Others:  [.*]                                 -->
+    <!--                        Note that internally the CGI Servlet treats   -->
+    <!--                        [.*] as a special case to improve performance -->
+    <!--                                                                      -->
+    <!--   cmdLineArgumentsEncoded                                            -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual encoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. The default matches -->
+    <!--                        the allowed values defined by RFC3875.        -->
+    <!--                        [[\w\Q%;/?:@&,$-.!~*'()\E]+]                  -->
+    <!--                                                                      -->
+    <!--   enableCmdLineArguments                                             -->
+    <!--                        Are command line parameters generated from    -->
+    <!--                        the query string as per section 4.4 of 3875   -->
+    <!--                        RFC? [false]                                  -->
+    <!--                                                                      -->
+    <!--   executable           Name of the executable used to run the        -->
+    <!--                        script. [perl]                                -->
+    <!--                                                                      -->
+    <!--   envHttpHeaders       A regular expression used to select the HTTP  -->
+    <!--                        headers passed to the CGI process as          -->
+    <!--                        environment variables. Note that headers are  -->
+    <!--                        converted to upper case before matching and   -->
+    <!--                        that the entire header name must match the    -->
+    <!--                        pattern.                                      -->
+    <!--                        [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|  -->
+    <!--                         IF-[-0-9A-Z]*|REFERER|USER-AGENT]            -->
+    <!--                                                                      -->
+    <!--  environment-variable- An environment to be set for the execution    -->
+    <!--                        environment of the CGI script. The name of    -->
+    <!--                        variable is taken from the parameter name.    -->
+    <!--                        To configure an environment variable named    -->
+    <!--                        FOO, configure a parameter named              -->
+    <!--                        environment-variable-FOO. The parameter value -->
+    <!--                        is used as the environment variable value.    -->
+    <!--                        The default is no environment variables.      -->
+    <!--                                                                      -->
+    <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+    <!--                        CGI servlet.                                  -->
+    <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+    <!--                                                                      -->
+    <!--   passShellEnvironment Should the shell environment variables (if    -->
+    <!--                        any) be passed to the CGI script? [false]     -->
+    <!--                                                                      -->
+    <!--   stderrTimeout        The time (in milliseconds) to wait for the    -->
+    <!--                        reading of stderr to complete before          -->
+    <!--                        terminating the CGI process. [2000]           -->
+
     <!--
-    <servlet>
-        <servlet-name>cgi</servlet-name>
-        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
-        <init-param>
-          <param-name>cgiPathPrefix</param-name>
-          <param-value>WEB-INF/cgi</param-value>
-        </init-param>
-        <load-on-startup>5</load-on-startup>
-    </servlet>
- -->
-    <!--  ================ Built In Servlet Mappings =========================  -->
-    <!--  The servlet mappings for the built in servlets defined above.  Note   -->
-    <!--  that, by default, the CGI and SSI servlets are *not* mapped.  You     -->
-    <!--  must uncomment these mappings (or add them to your application's own  -->
-    <!--  web.xml deployment descriptor) to enable these services               -->
-    <!--  The mapping for the default servlet  -->
+        <servlet>
+            <servlet-name>cgi</servlet-name>
+            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+            <init-param>
+              <param-name>cgiPathPrefix</param-name>
+              <param-value>WEB-INF/cgi</param-value>
+            </init-param>
+            <load-on-startup>5</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+    <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+    <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+    <!-- must uncomment these mappings (or add them to your application's own -->
+    <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-    <!--  The mappings for the JSP servlet  -->
+
+    <!-- The mappings for the JSP servlet -->
     <servlet-mapping>
         <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
     </servlet-mapping>
-    <!--  The mapping for the SSI servlet  -->
+
+    <!-- The mapping for the SSI servlet -->
     <!--
-    <servlet-mapping>
-        <servlet-name>ssi</servlet-name>
-        <url-pattern>*.shtml</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  The mapping for the CGI Gateway servlet  -->
+        <servlet-mapping>
+            <servlet-name>ssi</servlet-name>
+            <url-pattern>*.shtml</url-pattern>
+        </servlet-mapping>
+    -->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
     <!--
-    <servlet-mapping>
-        <servlet-name>cgi</servlet-name>
-        <url-pattern>/cgi-bin/*</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  ================== Built In Filter Definitions =====================  -->
-    <!--  A filter that sets various security related HTTP Response headers.    -->
-    <!--  This filter supports the following initialization parameters          -->
-    <!--  (default values are in square brackets):                              -->
-    <!--                                                                        -->
-    <!--    hstsEnabled         Should the HTTP Strict Transport Security       -->
-    <!--                        (HSTS) header be added to the response? See     -->
-    <!--                        RFC 6797 for more information on HSTS. [true]   -->
-    <!--                                                                        -->
-    <!--    hstsMaxAgeSeconds   The max age value that should be used in the    -->
-    <!--                        HSTS header. Negative values will be treated    -->
-    <!--                        as zero. [0]                                    -->
-    <!--                                                                        -->
-    <!--    hstsIncludeSubDomains                                               -->
-    <!--                        Should the includeSubDomains parameter be       -->
-    <!--                        included in the HSTS header.                    -->
-    <!--                                                                        -->
-    <!--    antiClickJackingEnabled                                             -->
-    <!--                        Should the anti click-jacking header            -->
-    <!--                        X-Frame-Options be added to every response?     -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    antiClickJackingOption                                              -->
-    <!--                        What value should be used for the header. Must  -->
-    <!--                        be one of DENY, SAMEORIGIN, ALLOW-FROM          -->
-    <!--                        (case-insensitive). [DENY]                      -->
-    <!--                                                                        -->
-    <!--    antiClickJackingUri IF ALLOW-FROM is used, what URI should be       -->
-    <!--                        allowed? []                                     -->
-    <!--                                                                        -->
-    <!--    blockContentTypeSniffingEnabled                                     -->
-    <!--                        Should the header that blocks content type      -->
-    <!--                        sniffing be added to every response? [true]     -->
+        <servlet-mapping>
+            <servlet-name>cgi</servlet-name>
+            <url-pattern>/cgi-bin/*</url-pattern>
+        </servlet-mapping>
+    -->
+
+
+    <!-- ================== Built In Filter Definitions ===================== -->
+
+    <!-- A filter that sets various security related HTTP Response headers.   -->
+    <!-- This filter supports the following initialization parameters         -->
+    <!-- (default values are in square brackets):                             -->
+    <!--                                                                      -->
+    <!--   hstsEnabled         Should the HTTP Strict Transport Security      -->
+    <!--                       (HSTS) header be added to the response? See    -->
+    <!--                       RFC 6797 for more information on HSTS. [true]  -->
+    <!--                                                                      -->
+    <!--   hstsMaxAgeSeconds   The max age value that should be used in the   -->
+    <!--                       HSTS header. Negative values will be treated   -->
+    <!--                       as zero. [0]                                   -->
+    <!--                                                                      -->
+    <!--   hstsIncludeSubDomains                                              -->
+    <!--                       Should the includeSubDomains parameter be      -->
+    <!--                       included in the HSTS header.                   -->
+    <!--                                                                      -->
+    <!--   antiClickJackingEnabled                                            -->
+    <!--                       Should the anti click-jacking header           -->
+    <!--                       X-Frame-Options be added to every response?    -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   antiClickJackingOption                                             -->
+    <!--                       What value should be used for the header. Must -->
+    <!--                       be one of DENY, SAMEORIGIN, ALLOW-FROM         -->
+    <!--                       (case-insensitive). [DENY]                     -->
+    <!--                                                                      -->
+    <!--   antiClickJackingUri IF ALLOW-FROM is used, what URI should be      -->
+    <!--                       allowed? []                                    -->
+    <!--                                                                      -->
+    <!--   blockContentTypeSniffingEnabled                                    -->
+    <!--                       Should the header that blocks content type     -->
+    <!--                       sniffing be added to every response? [true]    -->
     <!--
-    <filter>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that sets character encoding that is used to decode  -->
-    <!--  parameters in a POST request  -->
+        <filter>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that sets character encoding that is used to decode -->
+    <!-- parameters in a POST request -->
     <!--
-    <filter>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
-        <init-param>
-            <param-name>encoding</param-name>
-            <param-value>UTF-8</param-value>
-        </init-param>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that triggers request parameters parsing and rejects the     -->
-    <!--  request if some parameters were skipped because of parsing errors or  -->
-    <!--  request size limitations.                                             -->
+        <filter>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
+            <init-param>
+                <param-name>encoding</param-name>
+                <param-value>UTF-8</param-value>
+            </init-param>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that triggers request parameters parsing and rejects the    -->
+    <!-- request if some parameters were skipped because of parsing errors or -->
+    <!-- request size limitations.                                            -->
     <!--
-    <filter>
-        <filter-name>failedRequestFilter</filter-name>
-        <filter-class>
-          org.apache.catalina.filters.FailedRequestFilter
-        </filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  NOTE: An SSI Servlet is also available as an alternative SSI          -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing filter, which processes SSI           -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this filter is mapped to the     -->
-    <!--  URL pattern "*.shtml", though it can be mapped to "*" as it will      -->
-    <!--  selectively enable/disable SSI processing based on mime types. For    -->
-    <!--  this to work you will need to uncomment the .shtml mime type          -->
-    <!--  definition towards the bottom of this file.                           -->
-    <!--  The contentType init param allows you to apply SSI processing to JSP  -->
-    <!--  pages, JavaScript, or any other content you wish.  This filter        -->
-    <!--  supports the following initialization parameters (default values are  -->
-    <!--  in square brackets):                                                  -->
-    <!--                                                                        -->
-    <!--    contentType         A regex pattern that must be matched before     -->
-    <!--                        SSI processing is applied.                      -->
-    <!--                        [text/x-server-parsed-html(;.*)?]               -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+        <filter>
+            <filter-name>failedRequestFilter</filter-name>
+            <filter-class>
+              org.apache.catalina.filters.FailedRequestFilter
+            </filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+
+    <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing filter, which processes SSI          -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+    <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+    <!-- selectively enable/disable SSI processing based on mime types. For   -->
+    <!-- this to work you will need to uncomment the .shtml mime type         -->
+    <!-- definition towards the bottom of this file.                          -->
+    <!-- The contentType init param allows you to apply SSI processing to JSP -->
+    <!-- pages, JavaScript, or any other content you wish.  This filter       -->
+    <!-- supports the following initialization parameters (default values are -->
+    <!-- in square brackets):                                                 -->
+    <!--                                                                      -->
+    <!--   contentType         A regex pattern that must be matched before    -->
+    <!--                       SSI processing is applied.                     -->
+    <!--                       [text/x-server-parsed-html(;.*)?]              -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <filter>
-        <filter-name>ssi</filter-name>
-        <filter-class>
-          org.apache.catalina.ssi.SSIFilter
-        </filter-class>
-        <init-param>
-          <param-name>contentType</param-name>
-          <param-value>text/x-server-parsed-html(;.*)?</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-    </filter>
- -->
-    <!--  ==================== Built In Filter Mappings ======================  -->
-    <!--  The mapping for the HTTP header security Filter  -->
+        <filter>
+            <filter-name>ssi</filter-name>
+            <filter-class>
+              org.apache.catalina.ssi.SSIFilter
+            </filter-class>
+            <init-param>
+              <param-name>contentType</param-name>
+              <param-value>text/x-server-parsed-html(;.*)?</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+        </filter>
+    -->
+
+
+    <!-- ==================== Built In Filter Mappings ====================== -->
+
+    <!-- The mapping for the HTTP header security Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <url-pattern>/*</url-pattern>
-        <dispatcher>REQUEST</dispatcher>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Set Character Encoding Filter  -->
+        <filter-mapping>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <url-pattern>/*</url-pattern>
+            <dispatcher>REQUEST</dispatcher>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Set Character Encoding Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Failed Request Filter  -->
+        <filter-mapping>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Failed Request Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>failedRequestFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the SSI Filter  -->
+        <filter-mapping>
+            <filter-name>failedRequestFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the SSI Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>ssi</filter-name>
-        <url-pattern>*.shtml</url-pattern>
-    </filter-mapping>
- -->
-    <!--  ==================== Default Session Configuration =================  -->
-    <!--  You can set the default session timeout (in minutes) for all newly    -->
-    <!--  created sessions by modifying the value below.                        -->
+        <filter-mapping>
+            <filter-name>ssi</filter-name>
+            <url-pattern>*.shtml</url-pattern>
+        </filter-mapping>
+    -->
+
+
+    <!-- ==================== Default Session Configuration ================= -->
+    <!-- You can set the default session timeout (in minutes) for all newly   -->
+    <!-- created sessions by modifying the value below.                       -->
+
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
-    <!--  ===================== Default MIME Type Mappings ===================  -->
-    <!--  When serving static resources, Tomcat will automatically generate     -->
-    <!--  a "Content-Type" header based on the resource's filename extension,   -->
-    <!--  based on these mappings.  Additional mappings can be added here (to   -->
-    <!--  apply to all web applications), or in your own application's web.xml  -->
-    <!--  deployment descriptor.                                                -->
-    <!--  Note: Extensions are always matched in a case-insensitive manner.     -->
+
+
+    <!-- ===================== Default MIME Type Mappings =================== -->
+    <!-- When serving static resources, Tomcat will automatically generate    -->
+    <!-- a "Content-Type" header based on the resource's filename extension,  -->
+    <!-- based on these mappings.  Additional mappings can be added here (to  -->
+    <!-- apply to all web applications), or in your own application's web.xml -->
+    <!-- deployment descriptor.                                               -->
+    <!-- Note: Extensions are always matched in a case-insensitive manner.    -->
+
     <mime-mapping>
         <extension>123</extension>
         <mime-type>application/vnd.lotus-1-2-3</mime-type>
@@ -1727,6 +1775,10 @@
         <extension>ggb</extension>
         <mime-type>application/vnd.geogebra.file</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>ggs</extension>
+        <mime-type>application/vnd.geogebra.slides</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>ggt</extension>
         <mime-type>application/vnd.geogebra.tool</mime-type>
@@ -2081,7 +2133,7 @@
     </mime-mapping>
     <mime-mapping>
         <extension>js</extension>
-        <mime-type>application/javascript</mime-type>
+        <mime-type>text/javascript</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>jsf</extension>
@@ -2431,6 +2483,10 @@
         <extension>mjp2</extension>
         <mime-type>video/mj2</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>mjs</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>mk3d</extension>
         <mime-type>video/x-matroska</mime-type>
@@ -2772,17 +2828,17 @@
         <mime-type>application/oda</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Database  -->
+        <!-- OpenDocument Database -->
         <extension>odb</extension>
         <mime-type>application/vnd.oasis.opendocument.database</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Chart  -->
+        <!-- OpenDocument Chart -->
         <extension>odc</extension>
         <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Formula  -->
+        <!-- OpenDocument Formula -->
         <extension>odf</extension>
         <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
     </mime-mapping>
@@ -2791,32 +2847,32 @@
         <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing  -->
+        <!-- OpenDocument Drawing -->
         <extension>odg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Image  -->
+        <!-- OpenDocument Image -->
         <extension>odi</extension>
         <mime-type>application/vnd.oasis.opendocument.image</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Master Document  -->
+        <!-- OpenDocument Master Document -->
         <extension>odm</extension>
         <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation  -->
+        <!-- OpenDocument Presentation -->
         <extension>odp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet  -->
+        <!-- OpenDocument Spreadsheet -->
         <extension>ods</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text  -->
+        <!-- OpenDocument Text -->
         <extension>odt</extension>
         <mime-type>application/vnd.oasis.opendocument.text</mime-type>
     </mime-mapping>
@@ -2833,7 +2889,7 @@
         <mime-type>video/ogg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  xiph mime types  -->
+        <!-- xiph mime types -->
         <extension>ogx</extension>
         <mime-type>application/ogg</mime-type>
     </mime-mapping>
@@ -2869,6 +2925,10 @@
         <extension>oprc</extension>
         <mime-type>application/vnd.palm</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>opus</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>org</extension>
         <mime-type>application/vnd.lotus-organizer</mime-type>
@@ -2890,12 +2950,12 @@
         <mime-type>font/otf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing Template  -->
+        <!-- OpenDocument Drawing Template -->
         <extension>otg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  HTML Document Template  -->
+        <!-- HTML Document Template -->
         <extension>oth</extension>
         <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
     </mime-mapping>
@@ -2904,17 +2964,17 @@
         <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation Template  -->
+        <!-- OpenDocument Presentation Template -->
         <extension>otp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet Template  -->
+        <!-- OpenDocument Spreadsheet Template -->
         <extension>ots</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text Template  -->
+        <!-- OpenDocument Text Template -->
         <extension>ott</extension>
         <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
     </mime-mapping>
@@ -3539,7 +3599,7 @@
         <extension>shtml</extension>
         <mime-type>text/x-server-parsed-html</mime-type>
     </mime-mapping>
-     -->
+    -->
     <mime-mapping>
         <extension>sid</extension>
         <mime-type>image/x-mrsid-image</mime-type>
@@ -4225,7 +4285,7 @@
         <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Wireless Bitmap  -->
+        <!-- Wireless Bitmap -->
         <extension>wbmp</extension>
         <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
@@ -4290,22 +4350,22 @@
         <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Source  -->
+        <!-- WML Source -->
         <extension>wml</extension>
         <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML  -->
+        <!-- Compiled WML -->
         <extension>wmlc</extension>
         <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Script Source  -->
+        <!-- WML Script Source -->
         <extension>wmls</extension>
         <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML Script  -->
+        <!-- Compiled WML Script -->
         <extension>wmlsc</extension>
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
@@ -4673,22 +4733,25 @@
         <extension>zmm</extension>
         <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
     </mime-mapping>
-    <!--  ==================== Default Welcome File List =====================  -->
-    <!--  When a request URI refers to a directory, the default servlet looks   -->
-    <!--  for a "welcome file" within that directory and, if present, to the    -->
-    <!--  corresponding resource URI for display.                               -->
-    <!--  If no welcome files are present, the default servlet either serves a  -->
-    <!--  directory listing (see default servlet configuration on how to        -->
-    <!--  customize) or returns a 404 status, depending on the value of the     -->
-    <!--  listings setting.                                                     -->
-    <!--                                                                        -->
-    <!--  If you define welcome files in your own application's web.xml         -->
-    <!--  deployment descriptor, that list *replaces* the list configured       -->
-    <!--  here, so be sure to include any of the default values that you wish   -->
-    <!--  to use within your application.                                        -->
+
+    <!-- ==================== Default Welcome File List ===================== -->
+    <!-- When a request URI refers to a directory, the default servlet looks  -->
+    <!-- for a "welcome file" within that directory and, if present, to the   -->
+    <!-- corresponding resource URI for display.                              -->
+    <!-- If no welcome files are present, the default servlet either serves a -->
+    <!-- directory listing (see default servlet configuration on how to       -->
+    <!-- customize) or returns a 404 status, depending on the value of the    -->
+    <!-- listings setting.                                                    -->
+    <!--                                                                      -->
+    <!-- If you define welcome files in your own application's web.xml        -->
+    <!-- deployment descriptor, that list *replaces* the list configured      -->
+    <!-- here, so be sure to include any of the default values that you wish  -->
+    <!-- to use within your application.                                      -->
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
-</web-app>
\ No newline at end of file
+
+</web-app>
diff --git a/boms/tomee-plus/src/main/resources/tomee/conf/web.xml b/boms/tomee-plus/src/main/resources/tomee/conf/web.xml
index 1c6e849dea..1f9a07c6c8 100644
--- a/boms/tomee-plus/src/main/resources/tomee/conf/web.xml
+++ b/boms/tomee-plus/src/main/resources/tomee/conf/web.xml
@@ -14,95 +14,109 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+-->
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-         version="4.0">
-    <!--  ======================== Introduction ==============================  -->
-    <!--  This document defines default values for *all* web applications       -->
-    <!--  loaded into this instance of Tomcat.  As each application is          -->
-    <!--  deployed, this file is processed, followed by the                     -->
-    <!--  "/WEB-INF/web.xml" deployment descriptor from your own                -->
-    <!--  applications.                                                         -->
-    <!--                                                                        -->
-    <!--  WARNING:  Do not configure application-specific resources here!       -->
-    <!--  They should go in the "/WEB-INF/web.xml" file in your application.    -->
-    <!--  ================== Built In Servlet Definitions ====================  -->
-    <!--  The default servlet for all web applications, that serves static      -->
-    <!--  resources.  It processes all requests that are not mapped to other    -->
-    <!--  servlets with servlet mappings (defined either here or in your own    -->
-    <!--  web.xml file).  This servlet supports the following initialization    -->
-    <!--  parameters (default values are in square brackets):                   -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet. Useful values are 0, 1, and    -->
-    <!--                        11 where higher values mean more detail. [0]    -->
-    <!--                                                                        -->
-    <!--    fileEncoding        Encoding to be used to read static resources    -->
-    <!--                        [platform default]                              -->
-    <!--                                                                        -->
-    <!--    useBomIfPresent     If a static file contains a byte order mark     -->
-    <!--                        (BOM), should this be used to determine the     -->
-    <!--                        file encoding in preference to fileEncoding.    -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    input               Input buffer size (in bytes) when reading       -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    listings            Should directory listings be produced if there  -->
-    <!--                        is no welcome file in this directory?  [false]  -->
-    <!--                        WARNING: Listings for directories with many     -->
-    <!--                        entries can be slow and may consume             -->
-    <!--                        significant proportions of server resources.    -->
-    <!--                                                                        -->
-    <!--    output              Output buffer size (in bytes) when writing      -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    readonly            Is this context "read only", so HTTP            -->
-    <!--                        commands like PUT and DELETE are                -->
-    <!--                        rejected?  [true]                               -->
-    <!--                                                                        -->
-    <!--    readmeFile          File to display together with the directory     -->
-    <!--                        contents. [null]                                -->
-    <!--                                                                        -->
-    <!--    sendfileSize        If the connector used supports sendfile, this   -->
-    <!--                        represents the minimal file size in KB for      -->
-    <!--                        which sendfile will be used. Use a negative     -->
-    <!--                        value to always disable sendfile.  [48]         -->
-    <!--                                                                        -->
-    <!--    useAcceptRanges     Should the Accept-Ranges header be included     -->
-    <!--                        in responses where appropriate? [true]          -->
-    <!--                                                                        -->
-    <!--   For directory listing customization. Checks localXsltFile, then      -->
-    <!--   globalXsltFile, then defaults to original behavior.                  -->
-    <!--                                                                        -->
-    <!--    localXsltFile       Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet residing    -->
-    <!--                        in that directory. This overrides               -->
-    <!--                        contextXsltFile and globalXsltFile[null]        -->
-    <!--                                                                        -->
-    <!--    contextXsltFile     Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet which is    -->
-    <!--                        relative to the context root. This overrides    -->
-    <!--                        globalXsltFile[null]                            -->
-    <!--                                                                        -->
-    <!--    globalXsltFile      Site wide configuration version of              -->
-    <!--                        localXsltFile. This argument must either be an  -->
-    <!--                        absolute or relative (to either                 -->
-    <!--                        $CATALINA_BASE/conf or $CATALINA_HOME/conf)     -->
-    <!--                        path that points to a location below either     -->
-    <!--                        $CATALINA_BASE/conf (checked first) or          -->
-    <!--                        $CATALINA_HOME/conf (checked second).[null]     -->
-    <!--                                                                        -->
-    <!--    showServerInfo      Should server information be presented in the   -->
-    <!--                        response sent to clients when directory         -->
-    <!--                        listings is enabled? [true]                     -->
-    <!--                                                                        -->
-    <!--    allowPartialPut     Should the server treat an HTTP PUT request     -->
-    <!--                        with a Range header as a partial PUT? Note      -->
-    <!--                        that RFC 7233 clarified that Range headers are  -->
-    <!--                        only valid for GET requests. [true]             -->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+         version="6.0">
+
+    <!-- ======================== Introduction ============================== -->
+    <!-- This document defines default values for *all* web applications      -->
+    <!-- loaded into this instance of Tomcat.  As each application is         -->
+    <!-- deployed, this file is processed, followed by the                    -->
+    <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+    <!-- applications.                                                        -->
+    <!--                                                                      -->
+    <!-- WARNING:  Do not configure application-specific resources here!      -->
+    <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+    <!-- Set the default request and response character encodings to UTF-8.   -->
+    <request-character-encoding>UTF-8</request-character-encoding>
+    <response-character-encoding>UTF-8</response-character-encoding>
+
+
+    <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+    <!-- The default servlet for all web applications, that serves static     -->
+    <!-- resources.  It processes all requests that are not mapped to other   -->
+    <!-- servlets with servlet mappings (defined either here or in your own   -->
+    <!-- web.xml file).  This servlet supports the following initialization   -->
+    <!-- parameters (default values are in square brackets):                  -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet. Useful values are 0, 1, and   -->
+    <!--                       11 where higher values mean more detail. [0]   -->
+    <!--                                                                      -->
+    <!--   fileEncoding        Encoding to be used to read static resources   -->
+    <!--                       [platform default]                             -->
+    <!--                                                                      -->
+    <!--   useBomIfPresent     If a static file contains a byte order mark    -->
+    <!--                       (BOM), should this be used to determine the    -->
+    <!--                       file encoding in preference to fileEncoding.   -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   input               Input buffer size (in bytes) when reading      -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   listings            Should directory listings be produced if there -->
+    <!--                       is no welcome file in this directory?  [false] -->
+    <!--                       WARNING: Listings for directories with many    -->
+    <!--                       entries can be slow and may consume            -->
+    <!--                       significant proportions of server resources.   -->
+    <!--                                                                      -->
+    <!--   output              Output buffer size (in bytes) when writing     -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   readonly            Is this context "read only", so HTTP           -->
+    <!--                       commands like PUT and DELETE are               -->
+    <!--                       rejected?  [true]                              -->
+    <!--                                                                      -->
+    <!--   readmeFile          File to display together with the directory    -->
+    <!--                       contents. [null]                               -->
+    <!--                                                                      -->
+    <!--   sendfileSize        If the connector used supports sendfile, this  -->
+    <!--                       represents the minimal file size in KiB for    -->
+    <!--                       which sendfile will be used. Use a negative    -->
+    <!--                       value to always disable sendfile.  [48]        -->
+    <!--                                                                      -->
+    <!--   useAcceptRanges     Should the Accept-Ranges header be included    -->
+    <!--                       in responses where appropriate? [true]         -->
+    <!--                                                                      -->
+    <!--  For directory listing customization. Checks localXsltFile, then     -->
+    <!--  globalXsltFile, then defaults to original behavior.                 -->
+    <!--                                                                      -->
+    <!--   localXsltFile       Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet residing   -->
+    <!--                       in that directory. This overrides              -->
+    <!--                       contextXsltFile and globalXsltFile[null]       -->
+    <!--                                                                      -->
+    <!--   contextXsltFile     Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet which is   -->
+    <!--                       relative to the context root. This overrides   -->
+    <!--                       globalXsltFile[null]                           -->
+    <!--                                                                      -->
+    <!--   globalXsltFile      Site wide configuration version of             -->
+    <!--                       localXsltFile. This argument must either be an -->
+    <!--                       absolute or relative (to either                -->
+    <!--                       $CATALINA_BASE/conf or $CATALINA_HOME/conf)    -->
+    <!--                       path that points to a location below either    -->
+    <!--                       $CATALINA_BASE/conf (checked first) or         -->
+    <!--                       $CATALINA_HOME/conf (checked second).[null]    -->
+    <!--                                                                      -->
+    <!--   showServerInfo      Should server information be presented in the  -->
+    <!--                       response sent to clients when directory        -->
+    <!--                       listings is enabled? [true]                    -->
+    <!--                                                                      -->
+    <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
+    <!--                       with a Range header as a partial PUT? Note     -->
+    <!--                       that while RFC 7233 clarified that Range       -->
+    <!--                       headers only valid for GET requests, RFC 9110  -->
+    <!--                       (which obsoletes RFC 7233) now allows partial  -->
+    <!--                       puts. [true]                                   -->
+
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
@@ -116,144 +130,143 @@
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
-    <!--  The JSP page compiler and execution servlet, which is the mechanism   -->
-    <!--  used by Tomcat to support JSP pages.  Traditionally, this servlet     -->
-    <!--  is mapped to the URL pattern "*.jsp".  This servlet supports the      -->
-    <!--  following initialization parameters (default values are in square     -->
-    <!--  brackets):                                                            -->
-    <!--                                                                        -->
-    <!--    checkInterval       If development is false and checkInterval is    -->
-    <!--                        greater than zero, background compilations are  -->
-    <!--                        enabled. checkInterval is the time in seconds   -->
-    <!--                        between checks to see if a JSP page (and its    -->
-    <!--                        dependent files) needs to  be recompiled. [0]   -->
-    <!--                                                                        -->
-    <!--    classdebuginfo      Should the class file be compiled with          -->
-    <!--                        debugging information?  [true]                  -->
-    <!--                                                                        -->
-    <!--    classpath           What class path should I use while compiling    -->
-    <!--                        generated servlets?  [Created dynamically       -->
-    <!--                        based on the current web application]           -->
-    <!--                                                                        -->
-    <!--    compiler            Which compiler Ant should use to compile JSP    -->
-    <!--                        pages.  See the jasper documentation for more   -->
-    <!--                        information.                                    -->
-    <!--                                                                        -->
-    <!--    compilerSourceVM    Compiler source VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    compilerTargetVM    Compiler target VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    development         Is Jasper used in development mode? If true,    -->
-    <!--                        the frequency at which JSPs are checked for     -->
-    <!--                        modification may be specified via the           -->
-    <!--                        modificationTestInterval parameter. [true]      -->
-    <!--                                                                        -->
-    <!--    displaySourceFragment                                               -->
-    <!--                        Should a source fragment be included in         -->
-    <!--                        exception messages? [true]                      -->
-    <!--                                                                        -->
-    <!--    dumpSmap            Should the SMAP info for JSR45 debugging be     -->
-    <!--                        dumped to a file? [false]                       -->
-    <!--                        False if suppressSmap is true                   -->
-    <!--                                                                        -->
-    <!--    enablePooling       Determines whether tag handler pooling is       -->
-    <!--                        enabled. This is a compilation option. It will  -->
-    <!--                        not alter the behaviour of JSPs that have       -->
-    <!--                        already been compiled. [true]                   -->
-    <!--                                                                        -->
-    <!--    engineOptionsClass  Allows specifying the Options class used to     -->
-    <!--                        configure Jasper. If not present, the default   -->
-    <!--                        EmbeddedServletOptions will be used.            -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    errorOnUseBeanInvalidClassAttribute                                 -->
-    <!--                        Should Jasper issue an error when the value of  -->
-    <!--                        the class attribute in an useBean action is     -->
-    <!--                        not a valid bean class?  [true]                 -->
-    <!--                                                                        -->
-    <!--    fork                Tell Ant to fork compiles of JSP pages so that  -->
-    <!--                        a separate JVM is used for JSP page compiles    -->
-    <!--                        from the one Tomcat is running in. [true]       -->
-    <!--                                                                        -->
-    <!--    genStringAsCharArray                                                -->
-    <!--                        Should text strings be generated as char        -->
-    <!--                        arrays, to improve performance in some cases?   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    ieClassId           The class-id value to be sent to Internet       -->
-    <!--                        Explorer when using <jsp:plugin> tags.          -->
-    <!--                        [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]    -->
-    <!--                                                                        -->
-    <!--    javaEncoding        Java file encoding to use for generating java   -->
-    <!--                        source files. [UTF8]                            -->
-    <!--                                                                        -->
-    <!--    keepgenerated       Should we keep the generated Java source code   -->
-    <!--                        for each page instead of deleting it? [true]    -->
-    <!--                                                                        -->
-    <!--    mappedfile          Should we generate static content with one      -->
-    <!--                        print statement per input line, to ease         -->
-    <!--                        debugging?  [true]                              -->
-    <!--                                                                        -->
-    <!--    maxLoadedJsps       The maximum number of JSPs that will be loaded  -->
-    <!--                        for a web application. If more than this        -->
-    <!--                        number of JSPs are loaded, the least recently   -->
-    <!--                        used JSPs will be unloaded so that the number   -->
-    <!--                        of JSPs loaded at any one time does not exceed  -->
-    <!--                        this limit. A value of zero or less indicates   -->
-    <!--                        no limit. [-1]                                  -->
-    <!--                                                                        -->
-    <!--    jspIdleTimeout      The amount of time in seconds a JSP can be      -->
-    <!--                        idle before it is unloaded. A value of zero     -->
-    <!--                        or less indicates never unload. [-1]            -->
-    <!--                                                                        -->
-    <!--    modificationTestInterval                                            -->
-    <!--                        Causes a JSP (and its dependent files) to not   -->
-    <!--                        be checked for modification during the          -->
-    <!--                        specified time interval (in seconds) from the   -->
-    <!--                        last time the JSP was checked for               -->
-    <!--                        modification. A value of 0 will cause the JSP   -->
-    <!--                        to be checked on every access.                  -->
-    <!--                        Used in development mode only. [4]              -->
-    <!--                                                                        -->
-    <!--    recompileOnFail     If a JSP compilation fails should the           -->
-    <!--                        modificationTestInterval be ignored and the     -->
-    <!--                        next access trigger a re-compilation attempt?   -->
-    <!--                        Used in development mode only and is disabled   -->
-    <!--                        by default as compilation may be expensive and  -->
-    <!--                        could lead to excessive resource usage.         -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    scratchdir          What scratch directory should we use when       -->
-    <!--                        compiling JSP pages?  [default work directory   -->
-    <!--                        for the current web application]                -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    suppressSmap        Should the generation of SMAP info for JSR45    -->
-    <!--                        debugging be suppressed?  [false]               -->
-    <!--                                                                        -->
-    <!--    trimSpaces          Should template text that consists entirely of  -->
-    <!--                        whitespace be removed from the output (true),   -->
-    <!--                        replaced with a single space (single) or left   -->
-    <!--                        unchanged (false)? Note that if a JSP page or   -->
-    <!--                        tag file specifies a trimDirectiveWhitespaces   -->
-    <!--                        value of true, that will take precedence over   -->
-    <!--                        this configuration setting for that page/tag.   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    xpoweredBy          Determines whether X-Powered-By response        -->
-    <!--                        header is added by generated servlet.  [false]  -->
-    <!--                                                                        -->
-    <!--    strictQuoteEscaping When scriptlet expressions are used for         -->
-    <!--                        attribute values, should the rules in JSP.1.6   -->
-    <!--                        for the escaping of quote characters be         -->
-    <!--                        strictly applied? [true]                        -->
-    <!--                                                                        -->
-    <!--    quoteAttributeEL    When EL is used in an attribute value on a      -->
-    <!--                        JSP page should the rules for quoting of        -->
-    <!--                        attributes described in JSP.1.6 be applied to   -->
-    <!--                        the expression? [true]                          -->
+
+
+    <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+    <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+    <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+    <!-- following initialization parameters (default values are in square    -->
+    <!-- brackets):                                                           -->
+    <!--                                                                      -->
+    <!--   checkInterval       If development is false and checkInterval is   -->
+    <!--                       greater than zero, background compilations are -->
+    <!--                       enabled. checkInterval is the time in seconds  -->
+    <!--                       between checks to see if a JSP page (and its   -->
+    <!--                       dependent files) needs to  be recompiled. [0]  -->
+    <!--                                                                      -->
+    <!--   classdebuginfo      Should the class file be compiled with         -->
+    <!--                       debugging information?  [true]                 -->
+    <!--                                                                      -->
+    <!--   classpath           What class path should I use while compiling   -->
+    <!--                       generated servlets?  [Created dynamically      -->
+    <!--                       based on the current web application]          -->
+    <!--                                                                      -->
+    <!--   compiler            Which compiler Ant should use to compile JSP   -->
+    <!--                       pages.  See the jasper documentation for more  -->
+    <!--                       information.                                   -->
+    <!--                                                                      -->
+    <!--   compilerSourceVM    Compiler source VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   compilerTargetVM    Compiler target VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   development         Is Jasper used in development mode? If true,   -->
+    <!--                       the frequency at which JSPs are checked for    -->
+    <!--                       modification may be specified via the          -->
+    <!--                       modificationTestInterval parameter. [true]     -->
+    <!--                                                                      -->
+    <!--   displaySourceFragment                                              -->
+    <!--                       Should a source fragment be included in        -->
+    <!--                       exception messages? [true]                     -->
+    <!--                                                                      -->
+    <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+    <!--                       dumped to a file? [false]                      -->
+    <!--                       False if suppressSmap is true                  -->
+    <!--                                                                      -->
+    <!--   enablePooling       Determines whether tag handler pooling is      -->
+    <!--                       enabled. This is a compilation option. It will -->
+    <!--                       not alter the behaviour of JSPs that have      -->
+    <!--                       already been compiled. [true]                  -->
+    <!--                                                                      -->
+    <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+    <!--                       configure Jasper. If not present, the default  -->
+    <!--                       EmbeddedServletOptions will be used.           -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   errorOnUseBeanInvalidClassAttribute                                -->
+    <!--                       Should Jasper issue an error when the value of -->
+    <!--                       the class attribute in an useBean action is    -->
+    <!--                       not a valid bean class?  [true]                -->
+    <!--                                                                      -->
+    <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+    <!--                       a separate JVM is used for JSP page compiles   -->
+    <!--                       from the one Tomcat is running in. [true]      -->
+    <!--                                                                      -->
+    <!--   genStringAsCharArray                                               -->
+    <!--                       Should text strings be generated as char       -->
+    <!--                       arrays, to improve performance in some cases?  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   javaEncoding        Java file encoding to use for generating java  -->
+    <!--                       source files. [UTF8]                           -->
+    <!--                                                                      -->
+    <!--   keepgenerated       Should we keep the generated Java source code  -->
+    <!--                       for each page instead of deleting it? [true]   -->
+    <!--                                                                      -->
+    <!--   mappedfile          Should we generate static content with one     -->
+    <!--                       print statement per input line, to ease        -->
+    <!--                       debugging?  [true]                             -->
+    <!--                                                                      -->
+    <!--   maxLoadedJsps       The maximum number of JSPs that will be loaded -->
+    <!--                       for a web application. If more than this       -->
+    <!--                       number of JSPs are loaded, the least recently  -->
+    <!--                       used JSPs will be unloaded so that the number  -->
+    <!--                       of JSPs loaded at any one time does not exceed -->
+    <!--                       this limit. A value of zero or less indicates  -->
+    <!--                       no limit. [-1]                                 -->
+    <!--                                                                      -->
+    <!--   jspIdleTimeout      The amount of time in seconds a JSP can be     -->
+    <!--                       idle before it is unloaded. A value of zero    -->
+    <!--                       or less indicates never unload. [-1]           -->
+    <!--                                                                      -->
+    <!--   modificationTestInterval                                           -->
+    <!--                       Causes a JSP (and its dependent files) to not  -->
+    <!--                       be checked for modification during the         -->
+    <!--                       specified time interval (in seconds) from the  -->
+    <!--                       last time the JSP was checked for              -->
+    <!--                       modification. A value of 0 will cause the JSP  -->
+    <!--                       to be checked on every access.                 -->
+    <!--                       Used in development mode only. [4]             -->
+    <!--                                                                      -->
+    <!--   recompileOnFail     If a JSP compilation fails should the          -->
+    <!--                       modificationTestInterval be ignored and the    -->
+    <!--                       next access trigger a re-compilation attempt?  -->
+    <!--                       Used in development mode only and is disabled  -->
+    <!--                       by default as compilation may be expensive and -->
+    <!--                       could lead to excessive resource usage.        -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   scratchdir          What scratch directory should we use when      -->
+    <!--                       compiling JSP pages?  [default work directory  -->
+    <!--                       for the current web application]               -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+    <!--                       debugging be suppressed?  [false]              -->
+    <!--                                                                      -->
+    <!--   trimSpaces          Should template text that consists entirely of -->
+    <!--                       whitespace be removed from the output (true),  -->
+    <!--                       replaced with a single space (single) or left  -->
+    <!--                       unchanged (false)? Note that if a JSP page or  -->
+    <!--                       tag file specifies a trimDirectiveWhitespaces  -->
+    <!--                       value of true, that will take precedence over  -->
+    <!--                       this configuration setting for that page/tag.  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+    <!--                       header is added by generated servlet.  [false] -->
+    <!--                                                                      -->
+    <!--   strictQuoteEscaping When scriptlet expressions are used for        -->
+    <!--                       attribute values, should the rules in JSP.1.6  -->
+    <!--                       for the escaping of quote characters be        -->
+    <!--                       strictly applied? [true]                       -->
+    <!--                                                                      -->
+    <!--   quoteAttributeEL    When EL is used in an attribute value on a     -->
+    <!--                       JSP page should the rules for quoting of       -->
+    <!--                       attributes described in JSP.1.6 be applied to  -->
+    <!--                       the expression? [true]                         -->
+
     <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
@@ -272,337 +285,372 @@
         </init-param>
         <load-on-startup>3</load-on-startup>
     </servlet>
-    <!--  NOTE: An SSI Filter is also available as an alternative SSI           -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing servlet, which processes SSI          -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this servlet is mapped to the    -->
-    <!--  URL pattern "*.shtml".  This servlet supports the following           -->
-    <!--  initialization parameters (default values are in square brackets):    -->
-    <!--                                                                        -->
-    <!--    buffered            Should output from this servlet be buffered?    -->
-    <!--                        (0=false, 1=true)  [0]                          -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    inputEncoding       The encoding to assume for SSI resources if     -->
-    <!--                        one is not available from the resource.         -->
-    <!--                        [Platform default]                              -->
-    <!--                                                                        -->
-    <!--    outputEncoding      The encoding to use for the page that results   -->
-    <!--                        from the SSI processing. [UTF-8]                -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+
+
+    <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing servlet, which processes SSI         -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+    <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+    <!-- initialization parameters (default values are in square brackets):   -->
+    <!--                                                                      -->
+    <!--   buffered            Should output from this servlet be buffered?   -->
+    <!--                       (0=false, 1=true)  [0]                         -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+    <!--                       one is not available from the resource.        -->
+    <!--                       [Platform default]                             -->
+    <!--                                                                      -->
+    <!--   outputEncoding      The encoding to use for the page that results  -->
+    <!--                       from the SSI processing. [UTF-8]               -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <servlet>
-        <servlet-name>ssi</servlet-name>
-        <servlet-class>
-          org.apache.catalina.ssi.SSIServlet
-        </servlet-class>
-        <init-param>
-          <param-name>buffered</param-name>
-          <param-value>1</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
- -->
-    <!--  Common Gateway Includes (CGI) processing servlet, which supports      -->
-    <!--  execution of external applications that conform to the CGI spec       -->
-    <!--  requirements.  Typically, this servlet is mapped to the URL pattern   -->
-    <!--  "/cgi-bin/*", which means that any CGI applications that are          -->
-    <!--  executed must be present within the web application.  This servlet    -->
-    <!--  supports the following initialization parameters (default values      -->
-    <!--  are in square brackets):                                              -->
-    <!--                                                                        -->
-    <!--    cgiPathPrefix        The CGI search path will start at              -->
-    <!--                         webAppRootDir + File.separator + this prefix.  -->
-    <!--                         If not set, then webAppRootDir is used.        -->
-    <!--                         Recommended value: WEB-INF/cgi                 -->
-    <!--                                                                        -->
-    <!--   cmdLineArgumentsDecoded                                              -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual decoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. This is to           -->
-    <!--                         work-around various issues when Java passes    -->
-    <!--                         the arguments to the OS. See the CGI How-To    -->
-    <!--                         for more details. The default varies by        -->
-    <!--                         platform.                                      -->
-    <!--                         Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+]             -->
-    <!--                         Others:  [.*]                                  -->
-    <!--                         Note that internally the CGI Servlet treats    -->
-    <!--                         [.*] as a special case to improve performance  -->
-    <!--                                                                        -->
-    <!--    cmdLineArgumentsEncoded                                             -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual encoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. The default matches  -->
-    <!--                         the allowed values defined by RFC3875.         -->
-    <!--                         [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+]           -->
-    <!--                                                                        -->
-    <!--    enableCmdLineArguments                                              -->
-    <!--                         Are command line parameters generated from     -->
-    <!--                         the query string as per section 4.4 of 3875    -->
-    <!--                         RFC? [false]                                   -->
-    <!--                                                                        -->
-    <!--    executable           Name of the executable used to run the         -->
-    <!--                         script. [perl]                                 -->
-    <!--                                                                        -->
-    <!--    envHttpHeaders       A regular expression used to select the HTTP   -->
-    <!--                         headers passed to the CGI process as           -->
-    <!--                         environment variables. Note that headers are   -->
-    <!--                         converted to upper case before matching and    -->
-    <!--                         that the entire header name must match the     -->
-    <!--                         pattern.                                       -->
-    <!--                         [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|   -->
-    <!--                          IF-[-0-9A-Z]*|REFERER|USER-AGENT]             -->
-    <!--                                                                        -->
-    <!--   environment-variable- An environment to be set for the execution     -->
-    <!--                         environment of the CGI script. The name of     -->
-    <!--                         variable is taken from the parameter name.     -->
-    <!--                         To configure an environment variable named     -->
-    <!--                         FOO, configure a parameter named               -->
-    <!--                         environment-variable-FOO. The parameter value  -->
-    <!--                         is used as the environment variable value.     -->
-    <!--                         The default is no environment variables.       -->
-    <!--                                                                        -->
-    <!--    parameterEncoding    Name of parameter encoding to be used with     -->
-    <!--                         CGI servlet.                                   -->
-    <!--                         [System.getProperty("file.encoding","UTF-8")]  -->
-    <!--                                                                        -->
-    <!--    passShellEnvironment Should the shell environment variables (if     -->
-    <!--                         any) be passed to the CGI script? [false]      -->
-    <!--                                                                        -->
-    <!--    stderrTimeout        The time (in milliseconds) to wait for the     -->
-    <!--                         reading of stderr to complete before           -->
-    <!--                         terminating the CGI process. [2000]            -->
+        <servlet>
+            <servlet-name>ssi</servlet-name>
+            <servlet-class>
+              org.apache.catalina.ssi.SSIServlet
+            </servlet-class>
+            <init-param>
+              <param-name>buffered</param-name>
+              <param-value>1</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+            <load-on-startup>4</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+    <!-- execution of external applications that conform to the CGI spec      -->
+    <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+    <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+    <!-- executed must be present within the web application.  This servlet   -->
+    <!-- supports the following initialization parameters (default values     -->
+    <!-- are in square brackets):                                             -->
+    <!--                                                                      -->
+    <!--   cgiPathPrefix        The CGI search path will start at             -->
+    <!--                        webAppRootDir + File.separator + this prefix. -->
+    <!--                        If not set, then webAppRootDir is used.       -->
+    <!--                        Recommended value: WEB-INF/cgi                -->
+    <!--                                                                      -->
+    <!--  cmdLineArgumentsDecoded                                             -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual decoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. This is to          -->
+    <!--                        work-around various issues when Java passes   -->
+    <!--                        the arguments to the OS. See the CGI How-To   -->
+    <!--                        for more details. The default varies by       -->
+    <!--                        platform.                                     -->
+    <!--                        Windows: [[\w\Q-.\\/:\E]+]                    -->
+    <!--                        Others:  [.*]                                 -->
+    <!--                        Note that internally the CGI Servlet treats   -->
+    <!--                        [.*] as a special case to improve performance -->
+    <!--                                                                      -->
+    <!--   cmdLineArgumentsEncoded                                            -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual encoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. The default matches -->
+    <!--                        the allowed values defined by RFC3875.        -->
+    <!--                        [[\w\Q%;/?:@&,$-.!~*'()\E]+]                  -->
+    <!--                                                                      -->
+    <!--   enableCmdLineArguments                                             -->
+    <!--                        Are command line parameters generated from    -->
+    <!--                        the query string as per section 4.4 of 3875   -->
+    <!--                        RFC? [false]                                  -->
+    <!--                                                                      -->
+    <!--   executable           Name of the executable used to run the        -->
+    <!--                        script. [perl]                                -->
+    <!--                                                                      -->
+    <!--   envHttpHeaders       A regular expression used to select the HTTP  -->
+    <!--                        headers passed to the CGI process as          -->
+    <!--                        environment variables. Note that headers are  -->
+    <!--                        converted to upper case before matching and   -->
+    <!--                        that the entire header name must match the    -->
+    <!--                        pattern.                                      -->
+    <!--                        [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|  -->
+    <!--                         IF-[-0-9A-Z]*|REFERER|USER-AGENT]            -->
+    <!--                                                                      -->
+    <!--  environment-variable- An environment to be set for the execution    -->
+    <!--                        environment of the CGI script. The name of    -->
+    <!--                        variable is taken from the parameter name.    -->
+    <!--                        To configure an environment variable named    -->
+    <!--                        FOO, configure a parameter named              -->
+    <!--                        environment-variable-FOO. The parameter value -->
+    <!--                        is used as the environment variable value.    -->
+    <!--                        The default is no environment variables.      -->
+    <!--                                                                      -->
+    <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+    <!--                        CGI servlet.                                  -->
+    <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+    <!--                                                                      -->
+    <!--   passShellEnvironment Should the shell environment variables (if    -->
+    <!--                        any) be passed to the CGI script? [false]     -->
+    <!--                                                                      -->
+    <!--   stderrTimeout        The time (in milliseconds) to wait for the    -->
+    <!--                        reading of stderr to complete before          -->
+    <!--                        terminating the CGI process. [2000]           -->
+
     <!--
-    <servlet>
-        <servlet-name>cgi</servlet-name>
-        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
-        <init-param>
-          <param-name>cgiPathPrefix</param-name>
-          <param-value>WEB-INF/cgi</param-value>
-        </init-param>
-        <load-on-startup>5</load-on-startup>
-    </servlet>
- -->
-    <!--  ================ Built In Servlet Mappings =========================  -->
-    <!--  The servlet mappings for the built in servlets defined above.  Note   -->
-    <!--  that, by default, the CGI and SSI servlets are *not* mapped.  You     -->
-    <!--  must uncomment these mappings (or add them to your application's own  -->
-    <!--  web.xml deployment descriptor) to enable these services               -->
-    <!--  The mapping for the default servlet  -->
+        <servlet>
+            <servlet-name>cgi</servlet-name>
+            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+            <init-param>
+              <param-name>cgiPathPrefix</param-name>
+              <param-value>WEB-INF/cgi</param-value>
+            </init-param>
+            <load-on-startup>5</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+    <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+    <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+    <!-- must uncomment these mappings (or add them to your application's own -->
+    <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-    <!--  The mappings for the JSP servlet  -->
+
+    <!-- The mappings for the JSP servlet -->
     <servlet-mapping>
         <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
     </servlet-mapping>
-    <!--  The mapping for the SSI servlet  -->
+
+    <!-- The mapping for the SSI servlet -->
     <!--
-    <servlet-mapping>
-        <servlet-name>ssi</servlet-name>
-        <url-pattern>*.shtml</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  The mapping for the CGI Gateway servlet  -->
+        <servlet-mapping>
+            <servlet-name>ssi</servlet-name>
+            <url-pattern>*.shtml</url-pattern>
+        </servlet-mapping>
+    -->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
     <!--
-    <servlet-mapping>
-        <servlet-name>cgi</servlet-name>
-        <url-pattern>/cgi-bin/*</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  ================== Built In Filter Definitions =====================  -->
-    <!--  A filter that sets various security related HTTP Response headers.    -->
-    <!--  This filter supports the following initialization parameters          -->
-    <!--  (default values are in square brackets):                              -->
-    <!--                                                                        -->
-    <!--    hstsEnabled         Should the HTTP Strict Transport Security       -->
-    <!--                        (HSTS) header be added to the response? See     -->
-    <!--                        RFC 6797 for more information on HSTS. [true]   -->
-    <!--                                                                        -->
-    <!--    hstsMaxAgeSeconds   The max age value that should be used in the    -->
-    <!--                        HSTS header. Negative values will be treated    -->
-    <!--                        as zero. [0]                                    -->
-    <!--                                                                        -->
-    <!--    hstsIncludeSubDomains                                               -->
-    <!--                        Should the includeSubDomains parameter be       -->
-    <!--                        included in the HSTS header.                    -->
-    <!--                                                                        -->
-    <!--    antiClickJackingEnabled                                             -->
-    <!--                        Should the anti click-jacking header            -->
-    <!--                        X-Frame-Options be added to every response?     -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    antiClickJackingOption                                              -->
-    <!--                        What value should be used for the header. Must  -->
-    <!--                        be one of DENY, SAMEORIGIN, ALLOW-FROM          -->
-    <!--                        (case-insensitive). [DENY]                      -->
-    <!--                                                                        -->
-    <!--    antiClickJackingUri IF ALLOW-FROM is used, what URI should be       -->
-    <!--                        allowed? []                                     -->
-    <!--                                                                        -->
-    <!--    blockContentTypeSniffingEnabled                                     -->
-    <!--                        Should the header that blocks content type      -->
-    <!--                        sniffing be added to every response? [true]     -->
+        <servlet-mapping>
+            <servlet-name>cgi</servlet-name>
+            <url-pattern>/cgi-bin/*</url-pattern>
+        </servlet-mapping>
+    -->
+
+
+    <!-- ================== Built In Filter Definitions ===================== -->
+
+    <!-- A filter that sets various security related HTTP Response headers.   -->
+    <!-- This filter supports the following initialization parameters         -->
+    <!-- (default values are in square brackets):                             -->
+    <!--                                                                      -->
+    <!--   hstsEnabled         Should the HTTP Strict Transport Security      -->
+    <!--                       (HSTS) header be added to the response? See    -->
+    <!--                       RFC 6797 for more information on HSTS. [true]  -->
+    <!--                                                                      -->
+    <!--   hstsMaxAgeSeconds   The max age value that should be used in the   -->
+    <!--                       HSTS header. Negative values will be treated   -->
+    <!--                       as zero. [0]                                   -->
+    <!--                                                                      -->
+    <!--   hstsIncludeSubDomains                                              -->
+    <!--                       Should the includeSubDomains parameter be      -->
+    <!--                       included in the HSTS header.                   -->
+    <!--                                                                      -->
+    <!--   antiClickJackingEnabled                                            -->
+    <!--                       Should the anti click-jacking header           -->
+    <!--                       X-Frame-Options be added to every response?    -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   antiClickJackingOption                                             -->
+    <!--                       What value should be used for the header. Must -->
+    <!--                       be one of DENY, SAMEORIGIN, ALLOW-FROM         -->
+    <!--                       (case-insensitive). [DENY]                     -->
+    <!--                                                                      -->
+    <!--   antiClickJackingUri IF ALLOW-FROM is used, what URI should be      -->
+    <!--                       allowed? []                                    -->
+    <!--                                                                      -->
+    <!--   blockContentTypeSniffingEnabled                                    -->
+    <!--                       Should the header that blocks content type     -->
+    <!--                       sniffing be added to every response? [true]    -->
     <!--
-    <filter>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that sets character encoding that is used to decode  -->
-    <!--  parameters in a POST request  -->
+        <filter>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that sets character encoding that is used to decode -->
+    <!-- parameters in a POST request -->
     <!--
-    <filter>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
-        <init-param>
-            <param-name>encoding</param-name>
-            <param-value>UTF-8</param-value>
-        </init-param>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that triggers request parameters parsing and rejects the     -->
-    <!--  request if some parameters were skipped because of parsing errors or  -->
-    <!--  request size limitations.                                             -->
+        <filter>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
+            <init-param>
+                <param-name>encoding</param-name>
+                <param-value>UTF-8</param-value>
+            </init-param>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that triggers request parameters parsing and rejects the    -->
+    <!-- request if some parameters were skipped because of parsing errors or -->
+    <!-- request size limitations.                                            -->
     <!--
-    <filter>
-        <filter-name>failedRequestFilter</filter-name>
-        <filter-class>
-          org.apache.catalina.filters.FailedRequestFilter
-        </filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  NOTE: An SSI Servlet is also available as an alternative SSI          -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing filter, which processes SSI           -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this filter is mapped to the     -->
-    <!--  URL pattern "*.shtml", though it can be mapped to "*" as it will      -->
-    <!--  selectively enable/disable SSI processing based on mime types. For    -->
-    <!--  this to work you will need to uncomment the .shtml mime type          -->
-    <!--  definition towards the bottom of this file.                           -->
-    <!--  The contentType init param allows you to apply SSI processing to JSP  -->
-    <!--  pages, JavaScript, or any other content you wish.  This filter        -->
-    <!--  supports the following initialization parameters (default values are  -->
-    <!--  in square brackets):                                                  -->
-    <!--                                                                        -->
-    <!--    contentType         A regex pattern that must be matched before     -->
-    <!--                        SSI processing is applied.                      -->
-    <!--                        [text/x-server-parsed-html(;.*)?]               -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+        <filter>
+            <filter-name>failedRequestFilter</filter-name>
+            <filter-class>
+              org.apache.catalina.filters.FailedRequestFilter
+            </filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+
+    <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing filter, which processes SSI          -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+    <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+    <!-- selectively enable/disable SSI processing based on mime types. For   -->
+    <!-- this to work you will need to uncomment the .shtml mime type         -->
+    <!-- definition towards the bottom of this file.                          -->
+    <!-- The contentType init param allows you to apply SSI processing to JSP -->
+    <!-- pages, JavaScript, or any other content you wish.  This filter       -->
+    <!-- supports the following initialization parameters (default values are -->
+    <!-- in square brackets):                                                 -->
+    <!--                                                                      -->
+    <!--   contentType         A regex pattern that must be matched before    -->
+    <!--                       SSI processing is applied.                     -->
+    <!--                       [text/x-server-parsed-html(;.*)?]              -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <filter>
-        <filter-name>ssi</filter-name>
-        <filter-class>
-          org.apache.catalina.ssi.SSIFilter
-        </filter-class>
-        <init-param>
-          <param-name>contentType</param-name>
-          <param-value>text/x-server-parsed-html(;.*)?</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-    </filter>
- -->
-    <!--  ==================== Built In Filter Mappings ======================  -->
-    <!--  The mapping for the HTTP header security Filter  -->
+        <filter>
+            <filter-name>ssi</filter-name>
+            <filter-class>
+              org.apache.catalina.ssi.SSIFilter
+            </filter-class>
+            <init-param>
+              <param-name>contentType</param-name>
+              <param-value>text/x-server-parsed-html(;.*)?</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+        </filter>
+    -->
+
+
+    <!-- ==================== Built In Filter Mappings ====================== -->
+
+    <!-- The mapping for the HTTP header security Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <url-pattern>/*</url-pattern>
-        <dispatcher>REQUEST</dispatcher>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Set Character Encoding Filter  -->
+        <filter-mapping>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <url-pattern>/*</url-pattern>
+            <dispatcher>REQUEST</dispatcher>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Set Character Encoding Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Failed Request Filter  -->
+        <filter-mapping>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Failed Request Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>failedRequestFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the SSI Filter  -->
+        <filter-mapping>
+            <filter-name>failedRequestFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the SSI Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>ssi</filter-name>
-        <url-pattern>*.shtml</url-pattern>
-    </filter-mapping>
- -->
-    <!--  ==================== Default Session Configuration =================  -->
-    <!--  You can set the default session timeout (in minutes) for all newly    -->
-    <!--  created sessions by modifying the value below.                        -->
+        <filter-mapping>
+            <filter-name>ssi</filter-name>
+            <url-pattern>*.shtml</url-pattern>
+        </filter-mapping>
+    -->
+
+
+    <!-- ==================== Default Session Configuration ================= -->
+    <!-- You can set the default session timeout (in minutes) for all newly   -->
+    <!-- created sessions by modifying the value below.                       -->
+
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
-    <!--  ===================== Default MIME Type Mappings ===================  -->
-    <!--  When serving static resources, Tomcat will automatically generate     -->
-    <!--  a "Content-Type" header based on the resource's filename extension,   -->
-    <!--  based on these mappings.  Additional mappings can be added here (to   -->
-    <!--  apply to all web applications), or in your own application's web.xml  -->
-    <!--  deployment descriptor.                                                -->
-    <!--  Note: Extensions are always matched in a case-insensitive manner.     -->
+
+
+    <!-- ===================== Default MIME Type Mappings =================== -->
+    <!-- When serving static resources, Tomcat will automatically generate    -->
+    <!-- a "Content-Type" header based on the resource's filename extension,  -->
+    <!-- based on these mappings.  Additional mappings can be added here (to  -->
+    <!-- apply to all web applications), or in your own application's web.xml -->
+    <!-- deployment descriptor.                                               -->
+    <!-- Note: Extensions are always matched in a case-insensitive manner.    -->
+
     <mime-mapping>
         <extension>123</extension>
         <mime-type>application/vnd.lotus-1-2-3</mime-type>
@@ -1727,6 +1775,10 @@
         <extension>ggb</extension>
         <mime-type>application/vnd.geogebra.file</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>ggs</extension>
+        <mime-type>application/vnd.geogebra.slides</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>ggt</extension>
         <mime-type>application/vnd.geogebra.tool</mime-type>
@@ -2081,7 +2133,7 @@
     </mime-mapping>
     <mime-mapping>
         <extension>js</extension>
-        <mime-type>application/javascript</mime-type>
+        <mime-type>text/javascript</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>jsf</extension>
@@ -2431,6 +2483,10 @@
         <extension>mjp2</extension>
         <mime-type>video/mj2</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>mjs</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>mk3d</extension>
         <mime-type>video/x-matroska</mime-type>
@@ -2772,17 +2828,17 @@
         <mime-type>application/oda</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Database  -->
+        <!-- OpenDocument Database -->
         <extension>odb</extension>
         <mime-type>application/vnd.oasis.opendocument.database</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Chart  -->
+        <!-- OpenDocument Chart -->
         <extension>odc</extension>
         <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Formula  -->
+        <!-- OpenDocument Formula -->
         <extension>odf</extension>
         <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
     </mime-mapping>
@@ -2791,32 +2847,32 @@
         <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing  -->
+        <!-- OpenDocument Drawing -->
         <extension>odg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Image  -->
+        <!-- OpenDocument Image -->
         <extension>odi</extension>
         <mime-type>application/vnd.oasis.opendocument.image</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Master Document  -->
+        <!-- OpenDocument Master Document -->
         <extension>odm</extension>
         <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation  -->
+        <!-- OpenDocument Presentation -->
         <extension>odp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet  -->
+        <!-- OpenDocument Spreadsheet -->
         <extension>ods</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text  -->
+        <!-- OpenDocument Text -->
         <extension>odt</extension>
         <mime-type>application/vnd.oasis.opendocument.text</mime-type>
     </mime-mapping>
@@ -2833,7 +2889,7 @@
         <mime-type>video/ogg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  xiph mime types  -->
+        <!-- xiph mime types -->
         <extension>ogx</extension>
         <mime-type>application/ogg</mime-type>
     </mime-mapping>
@@ -2869,6 +2925,10 @@
         <extension>oprc</extension>
         <mime-type>application/vnd.palm</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>opus</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>org</extension>
         <mime-type>application/vnd.lotus-organizer</mime-type>
@@ -2890,12 +2950,12 @@
         <mime-type>font/otf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing Template  -->
+        <!-- OpenDocument Drawing Template -->
         <extension>otg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  HTML Document Template  -->
+        <!-- HTML Document Template -->
         <extension>oth</extension>
         <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
     </mime-mapping>
@@ -2904,17 +2964,17 @@
         <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation Template  -->
+        <!-- OpenDocument Presentation Template -->
         <extension>otp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet Template  -->
+        <!-- OpenDocument Spreadsheet Template -->
         <extension>ots</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text Template  -->
+        <!-- OpenDocument Text Template -->
         <extension>ott</extension>
         <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
     </mime-mapping>
@@ -3539,7 +3599,7 @@
         <extension>shtml</extension>
         <mime-type>text/x-server-parsed-html</mime-type>
     </mime-mapping>
-     -->
+    -->
     <mime-mapping>
         <extension>sid</extension>
         <mime-type>image/x-mrsid-image</mime-type>
@@ -4225,7 +4285,7 @@
         <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Wireless Bitmap  -->
+        <!-- Wireless Bitmap -->
         <extension>wbmp</extension>
         <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
@@ -4290,22 +4350,22 @@
         <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Source  -->
+        <!-- WML Source -->
         <extension>wml</extension>
         <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML  -->
+        <!-- Compiled WML -->
         <extension>wmlc</extension>
         <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Script Source  -->
+        <!-- WML Script Source -->
         <extension>wmls</extension>
         <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML Script  -->
+        <!-- Compiled WML Script -->
         <extension>wmlsc</extension>
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
@@ -4673,22 +4733,25 @@
         <extension>zmm</extension>
         <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
     </mime-mapping>
-    <!--  ==================== Default Welcome File List =====================  -->
-    <!--  When a request URI refers to a directory, the default servlet looks   -->
-    <!--  for a "welcome file" within that directory and, if present, to the    -->
-    <!--  corresponding resource URI for display.                               -->
-    <!--  If no welcome files are present, the default servlet either serves a  -->
-    <!--  directory listing (see default servlet configuration on how to        -->
-    <!--  customize) or returns a 404 status, depending on the value of the     -->
-    <!--  listings setting.                                                     -->
-    <!--                                                                        -->
-    <!--  If you define welcome files in your own application's web.xml         -->
-    <!--  deployment descriptor, that list *replaces* the list configured       -->
-    <!--  here, so be sure to include any of the default values that you wish   -->
-    <!--  to use within your application.                                        -->
+
+    <!-- ==================== Default Welcome File List ===================== -->
+    <!-- When a request URI refers to a directory, the default servlet looks  -->
+    <!-- for a "welcome file" within that directory and, if present, to the   -->
+    <!-- corresponding resource URI for display.                              -->
+    <!-- If no welcome files are present, the default servlet either serves a -->
+    <!-- directory listing (see default servlet configuration on how to       -->
+    <!-- customize) or returns a 404 status, depending on the value of the    -->
+    <!-- listings setting.                                                    -->
+    <!--                                                                      -->
+    <!-- If you define welcome files in your own application's web.xml        -->
+    <!-- deployment descriptor, that list *replaces* the list configured      -->
+    <!-- here, so be sure to include any of the default values that you wish  -->
+    <!-- to use within your application.                                      -->
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
-</web-app>
\ No newline at end of file
+
+</web-app>
diff --git a/boms/tomee-webprofile/src/main/resources/tomee/conf/web.xml b/boms/tomee-webprofile/src/main/resources/tomee/conf/web.xml
index 1c6e849dea..1f9a07c6c8 100644
--- a/boms/tomee-webprofile/src/main/resources/tomee/conf/web.xml
+++ b/boms/tomee-webprofile/src/main/resources/tomee/conf/web.xml
@@ -14,95 +14,109 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+-->
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-         version="4.0">
-    <!--  ======================== Introduction ==============================  -->
-    <!--  This document defines default values for *all* web applications       -->
-    <!--  loaded into this instance of Tomcat.  As each application is          -->
-    <!--  deployed, this file is processed, followed by the                     -->
-    <!--  "/WEB-INF/web.xml" deployment descriptor from your own                -->
-    <!--  applications.                                                         -->
-    <!--                                                                        -->
-    <!--  WARNING:  Do not configure application-specific resources here!       -->
-    <!--  They should go in the "/WEB-INF/web.xml" file in your application.    -->
-    <!--  ================== Built In Servlet Definitions ====================  -->
-    <!--  The default servlet for all web applications, that serves static      -->
-    <!--  resources.  It processes all requests that are not mapped to other    -->
-    <!--  servlets with servlet mappings (defined either here or in your own    -->
-    <!--  web.xml file).  This servlet supports the following initialization    -->
-    <!--  parameters (default values are in square brackets):                   -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet. Useful values are 0, 1, and    -->
-    <!--                        11 where higher values mean more detail. [0]    -->
-    <!--                                                                        -->
-    <!--    fileEncoding        Encoding to be used to read static resources    -->
-    <!--                        [platform default]                              -->
-    <!--                                                                        -->
-    <!--    useBomIfPresent     If a static file contains a byte order mark     -->
-    <!--                        (BOM), should this be used to determine the     -->
-    <!--                        file encoding in preference to fileEncoding.    -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    input               Input buffer size (in bytes) when reading       -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    listings            Should directory listings be produced if there  -->
-    <!--                        is no welcome file in this directory?  [false]  -->
-    <!--                        WARNING: Listings for directories with many     -->
-    <!--                        entries can be slow and may consume             -->
-    <!--                        significant proportions of server resources.    -->
-    <!--                                                                        -->
-    <!--    output              Output buffer size (in bytes) when writing      -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    readonly            Is this context "read only", so HTTP            -->
-    <!--                        commands like PUT and DELETE are                -->
-    <!--                        rejected?  [true]                               -->
-    <!--                                                                        -->
-    <!--    readmeFile          File to display together with the directory     -->
-    <!--                        contents. [null]                                -->
-    <!--                                                                        -->
-    <!--    sendfileSize        If the connector used supports sendfile, this   -->
-    <!--                        represents the minimal file size in KB for      -->
-    <!--                        which sendfile will be used. Use a negative     -->
-    <!--                        value to always disable sendfile.  [48]         -->
-    <!--                                                                        -->
-    <!--    useAcceptRanges     Should the Accept-Ranges header be included     -->
-    <!--                        in responses where appropriate? [true]          -->
-    <!--                                                                        -->
-    <!--   For directory listing customization. Checks localXsltFile, then      -->
-    <!--   globalXsltFile, then defaults to original behavior.                  -->
-    <!--                                                                        -->
-    <!--    localXsltFile       Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet residing    -->
-    <!--                        in that directory. This overrides               -->
-    <!--                        contextXsltFile and globalXsltFile[null]        -->
-    <!--                                                                        -->
-    <!--    contextXsltFile     Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet which is    -->
-    <!--                        relative to the context root. This overrides    -->
-    <!--                        globalXsltFile[null]                            -->
-    <!--                                                                        -->
-    <!--    globalXsltFile      Site wide configuration version of              -->
-    <!--                        localXsltFile. This argument must either be an  -->
-    <!--                        absolute or relative (to either                 -->
-    <!--                        $CATALINA_BASE/conf or $CATALINA_HOME/conf)     -->
-    <!--                        path that points to a location below either     -->
-    <!--                        $CATALINA_BASE/conf (checked first) or          -->
-    <!--                        $CATALINA_HOME/conf (checked second).[null]     -->
-    <!--                                                                        -->
-    <!--    showServerInfo      Should server information be presented in the   -->
-    <!--                        response sent to clients when directory         -->
-    <!--                        listings is enabled? [true]                     -->
-    <!--                                                                        -->
-    <!--    allowPartialPut     Should the server treat an HTTP PUT request     -->
-    <!--                        with a Range header as a partial PUT? Note      -->
-    <!--                        that RFC 7233 clarified that Range headers are  -->
-    <!--                        only valid for GET requests. [true]             -->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+         version="6.0">
+
+    <!-- ======================== Introduction ============================== -->
+    <!-- This document defines default values for *all* web applications      -->
+    <!-- loaded into this instance of Tomcat.  As each application is         -->
+    <!-- deployed, this file is processed, followed by the                    -->
+    <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+    <!-- applications.                                                        -->
+    <!--                                                                      -->
+    <!-- WARNING:  Do not configure application-specific resources here!      -->
+    <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+    <!-- Set the default request and response character encodings to UTF-8.   -->
+    <request-character-encoding>UTF-8</request-character-encoding>
+    <response-character-encoding>UTF-8</response-character-encoding>
+
+
+    <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+    <!-- The default servlet for all web applications, that serves static     -->
+    <!-- resources.  It processes all requests that are not mapped to other   -->
+    <!-- servlets with servlet mappings (defined either here or in your own   -->
+    <!-- web.xml file).  This servlet supports the following initialization   -->
+    <!-- parameters (default values are in square brackets):                  -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet. Useful values are 0, 1, and   -->
+    <!--                       11 where higher values mean more detail. [0]   -->
+    <!--                                                                      -->
+    <!--   fileEncoding        Encoding to be used to read static resources   -->
+    <!--                       [platform default]                             -->
+    <!--                                                                      -->
+    <!--   useBomIfPresent     If a static file contains a byte order mark    -->
+    <!--                       (BOM), should this be used to determine the    -->
+    <!--                       file encoding in preference to fileEncoding.   -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   input               Input buffer size (in bytes) when reading      -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   listings            Should directory listings be produced if there -->
+    <!--                       is no welcome file in this directory?  [false] -->
+    <!--                       WARNING: Listings for directories with many    -->
+    <!--                       entries can be slow and may consume            -->
+    <!--                       significant proportions of server resources.   -->
+    <!--                                                                      -->
+    <!--   output              Output buffer size (in bytes) when writing     -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   readonly            Is this context "read only", so HTTP           -->
+    <!--                       commands like PUT and DELETE are               -->
+    <!--                       rejected?  [true]                              -->
+    <!--                                                                      -->
+    <!--   readmeFile          File to display together with the directory    -->
+    <!--                       contents. [null]                               -->
+    <!--                                                                      -->
+    <!--   sendfileSize        If the connector used supports sendfile, this  -->
+    <!--                       represents the minimal file size in KiB for    -->
+    <!--                       which sendfile will be used. Use a negative    -->
+    <!--                       value to always disable sendfile.  [48]        -->
+    <!--                                                                      -->
+    <!--   useAcceptRanges     Should the Accept-Ranges header be included    -->
+    <!--                       in responses where appropriate? [true]         -->
+    <!--                                                                      -->
+    <!--  For directory listing customization. Checks localXsltFile, then     -->
+    <!--  globalXsltFile, then defaults to original behavior.                 -->
+    <!--                                                                      -->
+    <!--   localXsltFile       Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet residing   -->
+    <!--                       in that directory. This overrides              -->
+    <!--                       contextXsltFile and globalXsltFile[null]       -->
+    <!--                                                                      -->
+    <!--   contextXsltFile     Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet which is   -->
+    <!--                       relative to the context root. This overrides   -->
+    <!--                       globalXsltFile[null]                           -->
+    <!--                                                                      -->
+    <!--   globalXsltFile      Site wide configuration version of             -->
+    <!--                       localXsltFile. This argument must either be an -->
+    <!--                       absolute or relative (to either                -->
+    <!--                       $CATALINA_BASE/conf or $CATALINA_HOME/conf)    -->
+    <!--                       path that points to a location below either    -->
+    <!--                       $CATALINA_BASE/conf (checked first) or         -->
+    <!--                       $CATALINA_HOME/conf (checked second).[null]    -->
+    <!--                                                                      -->
+    <!--   showServerInfo      Should server information be presented in the  -->
+    <!--                       response sent to clients when directory        -->
+    <!--                       listings is enabled? [true]                    -->
+    <!--                                                                      -->
+    <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
+    <!--                       with a Range header as a partial PUT? Note     -->
+    <!--                       that while RFC 7233 clarified that Range       -->
+    <!--                       headers only valid for GET requests, RFC 9110  -->
+    <!--                       (which obsoletes RFC 7233) now allows partial  -->
+    <!--                       puts. [true]                                   -->
+
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
@@ -116,144 +130,143 @@
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
-    <!--  The JSP page compiler and execution servlet, which is the mechanism   -->
-    <!--  used by Tomcat to support JSP pages.  Traditionally, this servlet     -->
-    <!--  is mapped to the URL pattern "*.jsp".  This servlet supports the      -->
-    <!--  following initialization parameters (default values are in square     -->
-    <!--  brackets):                                                            -->
-    <!--                                                                        -->
-    <!--    checkInterval       If development is false and checkInterval is    -->
-    <!--                        greater than zero, background compilations are  -->
-    <!--                        enabled. checkInterval is the time in seconds   -->
-    <!--                        between checks to see if a JSP page (and its    -->
-    <!--                        dependent files) needs to  be recompiled. [0]   -->
-    <!--                                                                        -->
-    <!--    classdebuginfo      Should the class file be compiled with          -->
-    <!--                        debugging information?  [true]                  -->
-    <!--                                                                        -->
-    <!--    classpath           What class path should I use while compiling    -->
-    <!--                        generated servlets?  [Created dynamically       -->
-    <!--                        based on the current web application]           -->
-    <!--                                                                        -->
-    <!--    compiler            Which compiler Ant should use to compile JSP    -->
-    <!--                        pages.  See the jasper documentation for more   -->
-    <!--                        information.                                    -->
-    <!--                                                                        -->
-    <!--    compilerSourceVM    Compiler source VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    compilerTargetVM    Compiler target VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    development         Is Jasper used in development mode? If true,    -->
-    <!--                        the frequency at which JSPs are checked for     -->
-    <!--                        modification may be specified via the           -->
-    <!--                        modificationTestInterval parameter. [true]      -->
-    <!--                                                                        -->
-    <!--    displaySourceFragment                                               -->
-    <!--                        Should a source fragment be included in         -->
-    <!--                        exception messages? [true]                      -->
-    <!--                                                                        -->
-    <!--    dumpSmap            Should the SMAP info for JSR45 debugging be     -->
-    <!--                        dumped to a file? [false]                       -->
-    <!--                        False if suppressSmap is true                   -->
-    <!--                                                                        -->
-    <!--    enablePooling       Determines whether tag handler pooling is       -->
-    <!--                        enabled. This is a compilation option. It will  -->
-    <!--                        not alter the behaviour of JSPs that have       -->
-    <!--                        already been compiled. [true]                   -->
-    <!--                                                                        -->
-    <!--    engineOptionsClass  Allows specifying the Options class used to     -->
-    <!--                        configure Jasper. If not present, the default   -->
-    <!--                        EmbeddedServletOptions will be used.            -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    errorOnUseBeanInvalidClassAttribute                                 -->
-    <!--                        Should Jasper issue an error when the value of  -->
-    <!--                        the class attribute in an useBean action is     -->
-    <!--                        not a valid bean class?  [true]                 -->
-    <!--                                                                        -->
-    <!--    fork                Tell Ant to fork compiles of JSP pages so that  -->
-    <!--                        a separate JVM is used for JSP page compiles    -->
-    <!--                        from the one Tomcat is running in. [true]       -->
-    <!--                                                                        -->
-    <!--    genStringAsCharArray                                                -->
-    <!--                        Should text strings be generated as char        -->
-    <!--                        arrays, to improve performance in some cases?   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    ieClassId           The class-id value to be sent to Internet       -->
-    <!--                        Explorer when using <jsp:plugin> tags.          -->
-    <!--                        [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]    -->
-    <!--                                                                        -->
-    <!--    javaEncoding        Java file encoding to use for generating java   -->
-    <!--                        source files. [UTF8]                            -->
-    <!--                                                                        -->
-    <!--    keepgenerated       Should we keep the generated Java source code   -->
-    <!--                        for each page instead of deleting it? [true]    -->
-    <!--                                                                        -->
-    <!--    mappedfile          Should we generate static content with one      -->
-    <!--                        print statement per input line, to ease         -->
-    <!--                        debugging?  [true]                              -->
-    <!--                                                                        -->
-    <!--    maxLoadedJsps       The maximum number of JSPs that will be loaded  -->
-    <!--                        for a web application. If more than this        -->
-    <!--                        number of JSPs are loaded, the least recently   -->
-    <!--                        used JSPs will be unloaded so that the number   -->
-    <!--                        of JSPs loaded at any one time does not exceed  -->
-    <!--                        this limit. A value of zero or less indicates   -->
-    <!--                        no limit. [-1]                                  -->
-    <!--                                                                        -->
-    <!--    jspIdleTimeout      The amount of time in seconds a JSP can be      -->
-    <!--                        idle before it is unloaded. A value of zero     -->
-    <!--                        or less indicates never unload. [-1]            -->
-    <!--                                                                        -->
-    <!--    modificationTestInterval                                            -->
-    <!--                        Causes a JSP (and its dependent files) to not   -->
-    <!--                        be checked for modification during the          -->
-    <!--                        specified time interval (in seconds) from the   -->
-    <!--                        last time the JSP was checked for               -->
-    <!--                        modification. A value of 0 will cause the JSP   -->
-    <!--                        to be checked on every access.                  -->
-    <!--                        Used in development mode only. [4]              -->
-    <!--                                                                        -->
-    <!--    recompileOnFail     If a JSP compilation fails should the           -->
-    <!--                        modificationTestInterval be ignored and the     -->
-    <!--                        next access trigger a re-compilation attempt?   -->
-    <!--                        Used in development mode only and is disabled   -->
-    <!--                        by default as compilation may be expensive and  -->
-    <!--                        could lead to excessive resource usage.         -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    scratchdir          What scratch directory should we use when       -->
-    <!--                        compiling JSP pages?  [default work directory   -->
-    <!--                        for the current web application]                -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    suppressSmap        Should the generation of SMAP info for JSR45    -->
-    <!--                        debugging be suppressed?  [false]               -->
-    <!--                                                                        -->
-    <!--    trimSpaces          Should template text that consists entirely of  -->
-    <!--                        whitespace be removed from the output (true),   -->
-    <!--                        replaced with a single space (single) or left   -->
-    <!--                        unchanged (false)? Note that if a JSP page or   -->
-    <!--                        tag file specifies a trimDirectiveWhitespaces   -->
-    <!--                        value of true, that will take precedence over   -->
-    <!--                        this configuration setting for that page/tag.   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    xpoweredBy          Determines whether X-Powered-By response        -->
-    <!--                        header is added by generated servlet.  [false]  -->
-    <!--                                                                        -->
-    <!--    strictQuoteEscaping When scriptlet expressions are used for         -->
-    <!--                        attribute values, should the rules in JSP.1.6   -->
-    <!--                        for the escaping of quote characters be         -->
-    <!--                        strictly applied? [true]                        -->
-    <!--                                                                        -->
-    <!--    quoteAttributeEL    When EL is used in an attribute value on a      -->
-    <!--                        JSP page should the rules for quoting of        -->
-    <!--                        attributes described in JSP.1.6 be applied to   -->
-    <!--                        the expression? [true]                          -->
+
+
+    <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+    <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+    <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+    <!-- following initialization parameters (default values are in square    -->
+    <!-- brackets):                                                           -->
+    <!--                                                                      -->
+    <!--   checkInterval       If development is false and checkInterval is   -->
+    <!--                       greater than zero, background compilations are -->
+    <!--                       enabled. checkInterval is the time in seconds  -->
+    <!--                       between checks to see if a JSP page (and its   -->
+    <!--                       dependent files) needs to  be recompiled. [0]  -->
+    <!--                                                                      -->
+    <!--   classdebuginfo      Should the class file be compiled with         -->
+    <!--                       debugging information?  [true]                 -->
+    <!--                                                                      -->
+    <!--   classpath           What class path should I use while compiling   -->
+    <!--                       generated servlets?  [Created dynamically      -->
+    <!--                       based on the current web application]          -->
+    <!--                                                                      -->
+    <!--   compiler            Which compiler Ant should use to compile JSP   -->
+    <!--                       pages.  See the jasper documentation for more  -->
+    <!--                       information.                                   -->
+    <!--                                                                      -->
+    <!--   compilerSourceVM    Compiler source VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   compilerTargetVM    Compiler target VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   development         Is Jasper used in development mode? If true,   -->
+    <!--                       the frequency at which JSPs are checked for    -->
+    <!--                       modification may be specified via the          -->
+    <!--                       modificationTestInterval parameter. [true]     -->
+    <!--                                                                      -->
+    <!--   displaySourceFragment                                              -->
+    <!--                       Should a source fragment be included in        -->
+    <!--                       exception messages? [true]                     -->
+    <!--                                                                      -->
+    <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+    <!--                       dumped to a file? [false]                      -->
+    <!--                       False if suppressSmap is true                  -->
+    <!--                                                                      -->
+    <!--   enablePooling       Determines whether tag handler pooling is      -->
+    <!--                       enabled. This is a compilation option. It will -->
+    <!--                       not alter the behaviour of JSPs that have      -->
+    <!--                       already been compiled. [true]                  -->
+    <!--                                                                      -->
+    <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+    <!--                       configure Jasper. If not present, the default  -->
+    <!--                       EmbeddedServletOptions will be used.           -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   errorOnUseBeanInvalidClassAttribute                                -->
+    <!--                       Should Jasper issue an error when the value of -->
+    <!--                       the class attribute in an useBean action is    -->
+    <!--                       not a valid bean class?  [true]                -->
+    <!--                                                                      -->
+    <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+    <!--                       a separate JVM is used for JSP page compiles   -->
+    <!--                       from the one Tomcat is running in. [true]      -->
+    <!--                                                                      -->
+    <!--   genStringAsCharArray                                               -->
+    <!--                       Should text strings be generated as char       -->
+    <!--                       arrays, to improve performance in some cases?  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   javaEncoding        Java file encoding to use for generating java  -->
+    <!--                       source files. [UTF8]                           -->
+    <!--                                                                      -->
+    <!--   keepgenerated       Should we keep the generated Java source code  -->
+    <!--                       for each page instead of deleting it? [true]   -->
+    <!--                                                                      -->
+    <!--   mappedfile          Should we generate static content with one     -->
+    <!--                       print statement per input line, to ease        -->
+    <!--                       debugging?  [true]                             -->
+    <!--                                                                      -->
+    <!--   maxLoadedJsps       The maximum number of JSPs that will be loaded -->
+    <!--                       for a web application. If more than this       -->
+    <!--                       number of JSPs are loaded, the least recently  -->
+    <!--                       used JSPs will be unloaded so that the number  -->
+    <!--                       of JSPs loaded at any one time does not exceed -->
+    <!--                       this limit. A value of zero or less indicates  -->
+    <!--                       no limit. [-1]                                 -->
+    <!--                                                                      -->
+    <!--   jspIdleTimeout      The amount of time in seconds a JSP can be     -->
+    <!--                       idle before it is unloaded. A value of zero    -->
+    <!--                       or less indicates never unload. [-1]           -->
+    <!--                                                                      -->
+    <!--   modificationTestInterval                                           -->
+    <!--                       Causes a JSP (and its dependent files) to not  -->
+    <!--                       be checked for modification during the         -->
+    <!--                       specified time interval (in seconds) from the  -->
+    <!--                       last time the JSP was checked for              -->
+    <!--                       modification. A value of 0 will cause the JSP  -->
+    <!--                       to be checked on every access.                 -->
+    <!--                       Used in development mode only. [4]             -->
+    <!--                                                                      -->
+    <!--   recompileOnFail     If a JSP compilation fails should the          -->
+    <!--                       modificationTestInterval be ignored and the    -->
+    <!--                       next access trigger a re-compilation attempt?  -->
+    <!--                       Used in development mode only and is disabled  -->
+    <!--                       by default as compilation may be expensive and -->
+    <!--                       could lead to excessive resource usage.        -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   scratchdir          What scratch directory should we use when      -->
+    <!--                       compiling JSP pages?  [default work directory  -->
+    <!--                       for the current web application]               -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+    <!--                       debugging be suppressed?  [false]              -->
+    <!--                                                                      -->
+    <!--   trimSpaces          Should template text that consists entirely of -->
+    <!--                       whitespace be removed from the output (true),  -->
+    <!--                       replaced with a single space (single) or left  -->
+    <!--                       unchanged (false)? Note that if a JSP page or  -->
+    <!--                       tag file specifies a trimDirectiveWhitespaces  -->
+    <!--                       value of true, that will take precedence over  -->
+    <!--                       this configuration setting for that page/tag.  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+    <!--                       header is added by generated servlet.  [false] -->
+    <!--                                                                      -->
+    <!--   strictQuoteEscaping When scriptlet expressions are used for        -->
+    <!--                       attribute values, should the rules in JSP.1.6  -->
+    <!--                       for the escaping of quote characters be        -->
+    <!--                       strictly applied? [true]                       -->
+    <!--                                                                      -->
+    <!--   quoteAttributeEL    When EL is used in an attribute value on a     -->
+    <!--                       JSP page should the rules for quoting of       -->
+    <!--                       attributes described in JSP.1.6 be applied to  -->
+    <!--                       the expression? [true]                         -->
+
     <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
@@ -272,337 +285,372 @@
         </init-param>
         <load-on-startup>3</load-on-startup>
     </servlet>
-    <!--  NOTE: An SSI Filter is also available as an alternative SSI           -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing servlet, which processes SSI          -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this servlet is mapped to the    -->
-    <!--  URL pattern "*.shtml".  This servlet supports the following           -->
-    <!--  initialization parameters (default values are in square brackets):    -->
-    <!--                                                                        -->
-    <!--    buffered            Should output from this servlet be buffered?    -->
-    <!--                        (0=false, 1=true)  [0]                          -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    inputEncoding       The encoding to assume for SSI resources if     -->
-    <!--                        one is not available from the resource.         -->
-    <!--                        [Platform default]                              -->
-    <!--                                                                        -->
-    <!--    outputEncoding      The encoding to use for the page that results   -->
-    <!--                        from the SSI processing. [UTF-8]                -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+
+
+    <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing servlet, which processes SSI         -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+    <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+    <!-- initialization parameters (default values are in square brackets):   -->
+    <!--                                                                      -->
+    <!--   buffered            Should output from this servlet be buffered?   -->
+    <!--                       (0=false, 1=true)  [0]                         -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+    <!--                       one is not available from the resource.        -->
+    <!--                       [Platform default]                             -->
+    <!--                                                                      -->
+    <!--   outputEncoding      The encoding to use for the page that results  -->
+    <!--                       from the SSI processing. [UTF-8]               -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <servlet>
-        <servlet-name>ssi</servlet-name>
-        <servlet-class>
-          org.apache.catalina.ssi.SSIServlet
-        </servlet-class>
-        <init-param>
-          <param-name>buffered</param-name>
-          <param-value>1</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
- -->
-    <!--  Common Gateway Includes (CGI) processing servlet, which supports      -->
-    <!--  execution of external applications that conform to the CGI spec       -->
-    <!--  requirements.  Typically, this servlet is mapped to the URL pattern   -->
-    <!--  "/cgi-bin/*", which means that any CGI applications that are          -->
-    <!--  executed must be present within the web application.  This servlet    -->
-    <!--  supports the following initialization parameters (default values      -->
-    <!--  are in square brackets):                                              -->
-    <!--                                                                        -->
-    <!--    cgiPathPrefix        The CGI search path will start at              -->
-    <!--                         webAppRootDir + File.separator + this prefix.  -->
-    <!--                         If not set, then webAppRootDir is used.        -->
-    <!--                         Recommended value: WEB-INF/cgi                 -->
-    <!--                                                                        -->
-    <!--   cmdLineArgumentsDecoded                                              -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual decoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. This is to           -->
-    <!--                         work-around various issues when Java passes    -->
-    <!--                         the arguments to the OS. See the CGI How-To    -->
-    <!--                         for more details. The default varies by        -->
-    <!--                         platform.                                      -->
-    <!--                         Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+]             -->
-    <!--                         Others:  [.*]                                  -->
-    <!--                         Note that internally the CGI Servlet treats    -->
-    <!--                         [.*] as a special case to improve performance  -->
-    <!--                                                                        -->
-    <!--    cmdLineArgumentsEncoded                                             -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual encoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. The default matches  -->
-    <!--                         the allowed values defined by RFC3875.         -->
-    <!--                         [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+]           -->
-    <!--                                                                        -->
-    <!--    enableCmdLineArguments                                              -->
-    <!--                         Are command line parameters generated from     -->
-    <!--                         the query string as per section 4.4 of 3875    -->
-    <!--                         RFC? [false]                                   -->
-    <!--                                                                        -->
-    <!--    executable           Name of the executable used to run the         -->
-    <!--                         script. [perl]                                 -->
-    <!--                                                                        -->
-    <!--    envHttpHeaders       A regular expression used to select the HTTP   -->
-    <!--                         headers passed to the CGI process as           -->
-    <!--                         environment variables. Note that headers are   -->
-    <!--                         converted to upper case before matching and    -->
-    <!--                         that the entire header name must match the     -->
-    <!--                         pattern.                                       -->
-    <!--                         [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|   -->
-    <!--                          IF-[-0-9A-Z]*|REFERER|USER-AGENT]             -->
-    <!--                                                                        -->
-    <!--   environment-variable- An environment to be set for the execution     -->
-    <!--                         environment of the CGI script. The name of     -->
-    <!--                         variable is taken from the parameter name.     -->
-    <!--                         To configure an environment variable named     -->
-    <!--                         FOO, configure a parameter named               -->
-    <!--                         environment-variable-FOO. The parameter value  -->
-    <!--                         is used as the environment variable value.     -->
-    <!--                         The default is no environment variables.       -->
-    <!--                                                                        -->
-    <!--    parameterEncoding    Name of parameter encoding to be used with     -->
-    <!--                         CGI servlet.                                   -->
-    <!--                         [System.getProperty("file.encoding","UTF-8")]  -->
-    <!--                                                                        -->
-    <!--    passShellEnvironment Should the shell environment variables (if     -->
-    <!--                         any) be passed to the CGI script? [false]      -->
-    <!--                                                                        -->
-    <!--    stderrTimeout        The time (in milliseconds) to wait for the     -->
-    <!--                         reading of stderr to complete before           -->
-    <!--                         terminating the CGI process. [2000]            -->
+        <servlet>
+            <servlet-name>ssi</servlet-name>
+            <servlet-class>
+              org.apache.catalina.ssi.SSIServlet
+            </servlet-class>
+            <init-param>
+              <param-name>buffered</param-name>
+              <param-value>1</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+            <load-on-startup>4</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+    <!-- execution of external applications that conform to the CGI spec      -->
+    <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+    <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+    <!-- executed must be present within the web application.  This servlet   -->
+    <!-- supports the following initialization parameters (default values     -->
+    <!-- are in square brackets):                                             -->
+    <!--                                                                      -->
+    <!--   cgiPathPrefix        The CGI search path will start at             -->
+    <!--                        webAppRootDir + File.separator + this prefix. -->
+    <!--                        If not set, then webAppRootDir is used.       -->
+    <!--                        Recommended value: WEB-INF/cgi                -->
+    <!--                                                                      -->
+    <!--  cmdLineArgumentsDecoded                                             -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual decoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. This is to          -->
+    <!--                        work-around various issues when Java passes   -->
+    <!--                        the arguments to the OS. See the CGI How-To   -->
+    <!--                        for more details. The default varies by       -->
+    <!--                        platform.                                     -->
+    <!--                        Windows: [[\w\Q-.\\/:\E]+]                    -->
+    <!--                        Others:  [.*]                                 -->
+    <!--                        Note that internally the CGI Servlet treats   -->
+    <!--                        [.*] as a special case to improve performance -->
+    <!--                                                                      -->
+    <!--   cmdLineArgumentsEncoded                                            -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual encoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. The default matches -->
+    <!--                        the allowed values defined by RFC3875.        -->
+    <!--                        [[\w\Q%;/?:@&,$-.!~*'()\E]+]                  -->
+    <!--                                                                      -->
+    <!--   enableCmdLineArguments                                             -->
+    <!--                        Are command line parameters generated from    -->
+    <!--                        the query string as per section 4.4 of 3875   -->
+    <!--                        RFC? [false]                                  -->
+    <!--                                                                      -->
+    <!--   executable           Name of the executable used to run the        -->
+    <!--                        script. [perl]                                -->
+    <!--                                                                      -->
+    <!--   envHttpHeaders       A regular expression used to select the HTTP  -->
+    <!--                        headers passed to the CGI process as          -->
+    <!--                        environment variables. Note that headers are  -->
+    <!--                        converted to upper case before matching and   -->
+    <!--                        that the entire header name must match the    -->
+    <!--                        pattern.                                      -->
+    <!--                        [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|  -->
+    <!--                         IF-[-0-9A-Z]*|REFERER|USER-AGENT]            -->
+    <!--                                                                      -->
+    <!--  environment-variable- An environment to be set for the execution    -->
+    <!--                        environment of the CGI script. The name of    -->
+    <!--                        variable is taken from the parameter name.    -->
+    <!--                        To configure an environment variable named    -->
+    <!--                        FOO, configure a parameter named              -->
+    <!--                        environment-variable-FOO. The parameter value -->
+    <!--                        is used as the environment variable value.    -->
+    <!--                        The default is no environment variables.      -->
+    <!--                                                                      -->
+    <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+    <!--                        CGI servlet.                                  -->
+    <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+    <!--                                                                      -->
+    <!--   passShellEnvironment Should the shell environment variables (if    -->
+    <!--                        any) be passed to the CGI script? [false]     -->
+    <!--                                                                      -->
+    <!--   stderrTimeout        The time (in milliseconds) to wait for the    -->
+    <!--                        reading of stderr to complete before          -->
+    <!--                        terminating the CGI process. [2000]           -->
+
     <!--
-    <servlet>
-        <servlet-name>cgi</servlet-name>
-        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
-        <init-param>
-          <param-name>cgiPathPrefix</param-name>
-          <param-value>WEB-INF/cgi</param-value>
-        </init-param>
-        <load-on-startup>5</load-on-startup>
-    </servlet>
- -->
-    <!--  ================ Built In Servlet Mappings =========================  -->
-    <!--  The servlet mappings for the built in servlets defined above.  Note   -->
-    <!--  that, by default, the CGI and SSI servlets are *not* mapped.  You     -->
-    <!--  must uncomment these mappings (or add them to your application's own  -->
-    <!--  web.xml deployment descriptor) to enable these services               -->
-    <!--  The mapping for the default servlet  -->
+        <servlet>
+            <servlet-name>cgi</servlet-name>
+            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+            <init-param>
+              <param-name>cgiPathPrefix</param-name>
+              <param-value>WEB-INF/cgi</param-value>
+            </init-param>
+            <load-on-startup>5</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+    <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+    <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+    <!-- must uncomment these mappings (or add them to your application's own -->
+    <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-    <!--  The mappings for the JSP servlet  -->
+
+    <!-- The mappings for the JSP servlet -->
     <servlet-mapping>
         <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
     </servlet-mapping>
-    <!--  The mapping for the SSI servlet  -->
+
+    <!-- The mapping for the SSI servlet -->
     <!--
-    <servlet-mapping>
-        <servlet-name>ssi</servlet-name>
-        <url-pattern>*.shtml</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  The mapping for the CGI Gateway servlet  -->
+        <servlet-mapping>
+            <servlet-name>ssi</servlet-name>
+            <url-pattern>*.shtml</url-pattern>
+        </servlet-mapping>
+    -->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
     <!--
-    <servlet-mapping>
-        <servlet-name>cgi</servlet-name>
-        <url-pattern>/cgi-bin/*</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  ================== Built In Filter Definitions =====================  -->
-    <!--  A filter that sets various security related HTTP Response headers.    -->
-    <!--  This filter supports the following initialization parameters          -->
-    <!--  (default values are in square brackets):                              -->
-    <!--                                                                        -->
-    <!--    hstsEnabled         Should the HTTP Strict Transport Security       -->
-    <!--                        (HSTS) header be added to the response? See     -->
-    <!--                        RFC 6797 for more information on HSTS. [true]   -->
-    <!--                                                                        -->
-    <!--    hstsMaxAgeSeconds   The max age value that should be used in the    -->
-    <!--                        HSTS header. Negative values will be treated    -->
-    <!--                        as zero. [0]                                    -->
-    <!--                                                                        -->
-    <!--    hstsIncludeSubDomains                                               -->
-    <!--                        Should the includeSubDomains parameter be       -->
-    <!--                        included in the HSTS header.                    -->
-    <!--                                                                        -->
-    <!--    antiClickJackingEnabled                                             -->
-    <!--                        Should the anti click-jacking header            -->
-    <!--                        X-Frame-Options be added to every response?     -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    antiClickJackingOption                                              -->
-    <!--                        What value should be used for the header. Must  -->
-    <!--                        be one of DENY, SAMEORIGIN, ALLOW-FROM          -->
-    <!--                        (case-insensitive). [DENY]                      -->
-    <!--                                                                        -->
-    <!--    antiClickJackingUri IF ALLOW-FROM is used, what URI should be       -->
-    <!--                        allowed? []                                     -->
-    <!--                                                                        -->
-    <!--    blockContentTypeSniffingEnabled                                     -->
-    <!--                        Should the header that blocks content type      -->
-    <!--                        sniffing be added to every response? [true]     -->
+        <servlet-mapping>
+            <servlet-name>cgi</servlet-name>
+            <url-pattern>/cgi-bin/*</url-pattern>
+        </servlet-mapping>
+    -->
+
+
+    <!-- ================== Built In Filter Definitions ===================== -->
+
+    <!-- A filter that sets various security related HTTP Response headers.   -->
+    <!-- This filter supports the following initialization parameters         -->
+    <!-- (default values are in square brackets):                             -->
+    <!--                                                                      -->
+    <!--   hstsEnabled         Should the HTTP Strict Transport Security      -->
+    <!--                       (HSTS) header be added to the response? See    -->
+    <!--                       RFC 6797 for more information on HSTS. [true]  -->
+    <!--                                                                      -->
+    <!--   hstsMaxAgeSeconds   The max age value that should be used in the   -->
+    <!--                       HSTS header. Negative values will be treated   -->
+    <!--                       as zero. [0]                                   -->
+    <!--                                                                      -->
+    <!--   hstsIncludeSubDomains                                              -->
+    <!--                       Should the includeSubDomains parameter be      -->
+    <!--                       included in the HSTS header.                   -->
+    <!--                                                                      -->
+    <!--   antiClickJackingEnabled                                            -->
+    <!--                       Should the anti click-jacking header           -->
+    <!--                       X-Frame-Options be added to every response?    -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   antiClickJackingOption                                             -->
+    <!--                       What value should be used for the header. Must -->
+    <!--                       be one of DENY, SAMEORIGIN, ALLOW-FROM         -->
+    <!--                       (case-insensitive). [DENY]                     -->
+    <!--                                                                      -->
+    <!--   antiClickJackingUri IF ALLOW-FROM is used, what URI should be      -->
+    <!--                       allowed? []                                    -->
+    <!--                                                                      -->
+    <!--   blockContentTypeSniffingEnabled                                    -->
+    <!--                       Should the header that blocks content type     -->
+    <!--                       sniffing be added to every response? [true]    -->
     <!--
-    <filter>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that sets character encoding that is used to decode  -->
-    <!--  parameters in a POST request  -->
+        <filter>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that sets character encoding that is used to decode -->
+    <!-- parameters in a POST request -->
     <!--
-    <filter>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
-        <init-param>
-            <param-name>encoding</param-name>
-            <param-value>UTF-8</param-value>
-        </init-param>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that triggers request parameters parsing and rejects the     -->
-    <!--  request if some parameters were skipped because of parsing errors or  -->
-    <!--  request size limitations.                                             -->
+        <filter>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
+            <init-param>
+                <param-name>encoding</param-name>
+                <param-value>UTF-8</param-value>
+            </init-param>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that triggers request parameters parsing and rejects the    -->
+    <!-- request if some parameters were skipped because of parsing errors or -->
+    <!-- request size limitations.                                            -->
     <!--
-    <filter>
-        <filter-name>failedRequestFilter</filter-name>
-        <filter-class>
-          org.apache.catalina.filters.FailedRequestFilter
-        </filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  NOTE: An SSI Servlet is also available as an alternative SSI          -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing filter, which processes SSI           -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this filter is mapped to the     -->
-    <!--  URL pattern "*.shtml", though it can be mapped to "*" as it will      -->
-    <!--  selectively enable/disable SSI processing based on mime types. For    -->
-    <!--  this to work you will need to uncomment the .shtml mime type          -->
-    <!--  definition towards the bottom of this file.                           -->
-    <!--  The contentType init param allows you to apply SSI processing to JSP  -->
-    <!--  pages, JavaScript, or any other content you wish.  This filter        -->
-    <!--  supports the following initialization parameters (default values are  -->
-    <!--  in square brackets):                                                  -->
-    <!--                                                                        -->
-    <!--    contentType         A regex pattern that must be matched before     -->
-    <!--                        SSI processing is applied.                      -->
-    <!--                        [text/x-server-parsed-html(;.*)?]               -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+        <filter>
+            <filter-name>failedRequestFilter</filter-name>
+            <filter-class>
+              org.apache.catalina.filters.FailedRequestFilter
+            </filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+
+    <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing filter, which processes SSI          -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+    <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+    <!-- selectively enable/disable SSI processing based on mime types. For   -->
+    <!-- this to work you will need to uncomment the .shtml mime type         -->
+    <!-- definition towards the bottom of this file.                          -->
+    <!-- The contentType init param allows you to apply SSI processing to JSP -->
+    <!-- pages, JavaScript, or any other content you wish.  This filter       -->
+    <!-- supports the following initialization parameters (default values are -->
+    <!-- in square brackets):                                                 -->
+    <!--                                                                      -->
+    <!--   contentType         A regex pattern that must be matched before    -->
+    <!--                       SSI processing is applied.                     -->
+    <!--                       [text/x-server-parsed-html(;.*)?]              -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <filter>
-        <filter-name>ssi</filter-name>
-        <filter-class>
-          org.apache.catalina.ssi.SSIFilter
-        </filter-class>
-        <init-param>
-          <param-name>contentType</param-name>
-          <param-value>text/x-server-parsed-html(;.*)?</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-    </filter>
- -->
-    <!--  ==================== Built In Filter Mappings ======================  -->
-    <!--  The mapping for the HTTP header security Filter  -->
+        <filter>
+            <filter-name>ssi</filter-name>
+            <filter-class>
+              org.apache.catalina.ssi.SSIFilter
+            </filter-class>
+            <init-param>
+              <param-name>contentType</param-name>
+              <param-value>text/x-server-parsed-html(;.*)?</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+        </filter>
+    -->
+
+
+    <!-- ==================== Built In Filter Mappings ====================== -->
+
+    <!-- The mapping for the HTTP header security Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <url-pattern>/*</url-pattern>
-        <dispatcher>REQUEST</dispatcher>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Set Character Encoding Filter  -->
+        <filter-mapping>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <url-pattern>/*</url-pattern>
+            <dispatcher>REQUEST</dispatcher>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Set Character Encoding Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Failed Request Filter  -->
+        <filter-mapping>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Failed Request Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>failedRequestFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the SSI Filter  -->
+        <filter-mapping>
+            <filter-name>failedRequestFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the SSI Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>ssi</filter-name>
-        <url-pattern>*.shtml</url-pattern>
-    </filter-mapping>
- -->
-    <!--  ==================== Default Session Configuration =================  -->
-    <!--  You can set the default session timeout (in minutes) for all newly    -->
-    <!--  created sessions by modifying the value below.                        -->
+        <filter-mapping>
+            <filter-name>ssi</filter-name>
+            <url-pattern>*.shtml</url-pattern>
+        </filter-mapping>
+    -->
+
+
+    <!-- ==================== Default Session Configuration ================= -->
+    <!-- You can set the default session timeout (in minutes) for all newly   -->
+    <!-- created sessions by modifying the value below.                       -->
+
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
-    <!--  ===================== Default MIME Type Mappings ===================  -->
-    <!--  When serving static resources, Tomcat will automatically generate     -->
-    <!--  a "Content-Type" header based on the resource's filename extension,   -->
-    <!--  based on these mappings.  Additional mappings can be added here (to   -->
-    <!--  apply to all web applications), or in your own application's web.xml  -->
-    <!--  deployment descriptor.                                                -->
-    <!--  Note: Extensions are always matched in a case-insensitive manner.     -->
+
+
+    <!-- ===================== Default MIME Type Mappings =================== -->
+    <!-- When serving static resources, Tomcat will automatically generate    -->
+    <!-- a "Content-Type" header based on the resource's filename extension,  -->
+    <!-- based on these mappings.  Additional mappings can be added here (to  -->
+    <!-- apply to all web applications), or in your own application's web.xml -->
+    <!-- deployment descriptor.                                               -->
+    <!-- Note: Extensions are always matched in a case-insensitive manner.    -->
+
     <mime-mapping>
         <extension>123</extension>
         <mime-type>application/vnd.lotus-1-2-3</mime-type>
@@ -1727,6 +1775,10 @@
         <extension>ggb</extension>
         <mime-type>application/vnd.geogebra.file</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>ggs</extension>
+        <mime-type>application/vnd.geogebra.slides</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>ggt</extension>
         <mime-type>application/vnd.geogebra.tool</mime-type>
@@ -2081,7 +2133,7 @@
     </mime-mapping>
     <mime-mapping>
         <extension>js</extension>
-        <mime-type>application/javascript</mime-type>
+        <mime-type>text/javascript</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>jsf</extension>
@@ -2431,6 +2483,10 @@
         <extension>mjp2</extension>
         <mime-type>video/mj2</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>mjs</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>mk3d</extension>
         <mime-type>video/x-matroska</mime-type>
@@ -2772,17 +2828,17 @@
         <mime-type>application/oda</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Database  -->
+        <!-- OpenDocument Database -->
         <extension>odb</extension>
         <mime-type>application/vnd.oasis.opendocument.database</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Chart  -->
+        <!-- OpenDocument Chart -->
         <extension>odc</extension>
         <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Formula  -->
+        <!-- OpenDocument Formula -->
         <extension>odf</extension>
         <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
     </mime-mapping>
@@ -2791,32 +2847,32 @@
         <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing  -->
+        <!-- OpenDocument Drawing -->
         <extension>odg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Image  -->
+        <!-- OpenDocument Image -->
         <extension>odi</extension>
         <mime-type>application/vnd.oasis.opendocument.image</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Master Document  -->
+        <!-- OpenDocument Master Document -->
         <extension>odm</extension>
         <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation  -->
+        <!-- OpenDocument Presentation -->
         <extension>odp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet  -->
+        <!-- OpenDocument Spreadsheet -->
         <extension>ods</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text  -->
+        <!-- OpenDocument Text -->
         <extension>odt</extension>
         <mime-type>application/vnd.oasis.opendocument.text</mime-type>
     </mime-mapping>
@@ -2833,7 +2889,7 @@
         <mime-type>video/ogg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  xiph mime types  -->
+        <!-- xiph mime types -->
         <extension>ogx</extension>
         <mime-type>application/ogg</mime-type>
     </mime-mapping>
@@ -2869,6 +2925,10 @@
         <extension>oprc</extension>
         <mime-type>application/vnd.palm</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>opus</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>org</extension>
         <mime-type>application/vnd.lotus-organizer</mime-type>
@@ -2890,12 +2950,12 @@
         <mime-type>font/otf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing Template  -->
+        <!-- OpenDocument Drawing Template -->
         <extension>otg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  HTML Document Template  -->
+        <!-- HTML Document Template -->
         <extension>oth</extension>
         <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
     </mime-mapping>
@@ -2904,17 +2964,17 @@
         <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation Template  -->
+        <!-- OpenDocument Presentation Template -->
         <extension>otp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet Template  -->
+        <!-- OpenDocument Spreadsheet Template -->
         <extension>ots</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text Template  -->
+        <!-- OpenDocument Text Template -->
         <extension>ott</extension>
         <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
     </mime-mapping>
@@ -3539,7 +3599,7 @@
         <extension>shtml</extension>
         <mime-type>text/x-server-parsed-html</mime-type>
     </mime-mapping>
-     -->
+    -->
     <mime-mapping>
         <extension>sid</extension>
         <mime-type>image/x-mrsid-image</mime-type>
@@ -4225,7 +4285,7 @@
         <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Wireless Bitmap  -->
+        <!-- Wireless Bitmap -->
         <extension>wbmp</extension>
         <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
@@ -4290,22 +4350,22 @@
         <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Source  -->
+        <!-- WML Source -->
         <extension>wml</extension>
         <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML  -->
+        <!-- Compiled WML -->
         <extension>wmlc</extension>
         <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Script Source  -->
+        <!-- WML Script Source -->
         <extension>wmls</extension>
         <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML Script  -->
+        <!-- Compiled WML Script -->
         <extension>wmlsc</extension>
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
@@ -4673,22 +4733,25 @@
         <extension>zmm</extension>
         <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
     </mime-mapping>
-    <!--  ==================== Default Welcome File List =====================  -->
-    <!--  When a request URI refers to a directory, the default servlet looks   -->
-    <!--  for a "welcome file" within that directory and, if present, to the    -->
-    <!--  corresponding resource URI for display.                               -->
-    <!--  If no welcome files are present, the default servlet either serves a  -->
-    <!--  directory listing (see default servlet configuration on how to        -->
-    <!--  customize) or returns a 404 status, depending on the value of the     -->
-    <!--  listings setting.                                                     -->
-    <!--                                                                        -->
-    <!--  If you define welcome files in your own application's web.xml         -->
-    <!--  deployment descriptor, that list *replaces* the list configured       -->
-    <!--  here, so be sure to include any of the default values that you wish   -->
-    <!--  to use within your application.                                        -->
+
+    <!-- ==================== Default Welcome File List ===================== -->
+    <!-- When a request URI refers to a directory, the default servlet looks  -->
+    <!-- for a "welcome file" within that directory and, if present, to the   -->
+    <!-- corresponding resource URI for display.                              -->
+    <!-- If no welcome files are present, the default servlet either serves a -->
+    <!-- directory listing (see default servlet configuration on how to       -->
+    <!-- customize) or returns a 404 status, depending on the value of the    -->
+    <!-- listings setting.                                                    -->
+    <!--                                                                      -->
+    <!-- If you define welcome files in your own application's web.xml        -->
+    <!-- deployment descriptor, that list *replaces* the list configured      -->
+    <!-- here, so be sure to include any of the default values that you wish  -->
+    <!-- to use within your application.                                      -->
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
-</web-app>
\ No newline at end of file
+
+</web-app>
diff --git a/tomee/tomee-common/src/main/resources/conf/web.xml b/tomee/tomee-common/src/main/resources/conf/web.xml
index 1c6e849dea..1f9a07c6c8 100644
--- a/tomee/tomee-common/src/main/resources/conf/web.xml
+++ b/tomee/tomee-common/src/main/resources/conf/web.xml
@@ -14,95 +14,109 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+-->
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-         version="4.0">
-    <!--  ======================== Introduction ==============================  -->
-    <!--  This document defines default values for *all* web applications       -->
-    <!--  loaded into this instance of Tomcat.  As each application is          -->
-    <!--  deployed, this file is processed, followed by the                     -->
-    <!--  "/WEB-INF/web.xml" deployment descriptor from your own                -->
-    <!--  applications.                                                         -->
-    <!--                                                                        -->
-    <!--  WARNING:  Do not configure application-specific resources here!       -->
-    <!--  They should go in the "/WEB-INF/web.xml" file in your application.    -->
-    <!--  ================== Built In Servlet Definitions ====================  -->
-    <!--  The default servlet for all web applications, that serves static      -->
-    <!--  resources.  It processes all requests that are not mapped to other    -->
-    <!--  servlets with servlet mappings (defined either here or in your own    -->
-    <!--  web.xml file).  This servlet supports the following initialization    -->
-    <!--  parameters (default values are in square brackets):                   -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet. Useful values are 0, 1, and    -->
-    <!--                        11 where higher values mean more detail. [0]    -->
-    <!--                                                                        -->
-    <!--    fileEncoding        Encoding to be used to read static resources    -->
-    <!--                        [platform default]                              -->
-    <!--                                                                        -->
-    <!--    useBomIfPresent     If a static file contains a byte order mark     -->
-    <!--                        (BOM), should this be used to determine the     -->
-    <!--                        file encoding in preference to fileEncoding.    -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    input               Input buffer size (in bytes) when reading       -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    listings            Should directory listings be produced if there  -->
-    <!--                        is no welcome file in this directory?  [false]  -->
-    <!--                        WARNING: Listings for directories with many     -->
-    <!--                        entries can be slow and may consume             -->
-    <!--                        significant proportions of server resources.    -->
-    <!--                                                                        -->
-    <!--    output              Output buffer size (in bytes) when writing      -->
-    <!--                        resources to be served.  [2048]                 -->
-    <!--                                                                        -->
-    <!--    readonly            Is this context "read only", so HTTP            -->
-    <!--                        commands like PUT and DELETE are                -->
-    <!--                        rejected?  [true]                               -->
-    <!--                                                                        -->
-    <!--    readmeFile          File to display together with the directory     -->
-    <!--                        contents. [null]                                -->
-    <!--                                                                        -->
-    <!--    sendfileSize        If the connector used supports sendfile, this   -->
-    <!--                        represents the minimal file size in KB for      -->
-    <!--                        which sendfile will be used. Use a negative     -->
-    <!--                        value to always disable sendfile.  [48]         -->
-    <!--                                                                        -->
-    <!--    useAcceptRanges     Should the Accept-Ranges header be included     -->
-    <!--                        in responses where appropriate? [true]          -->
-    <!--                                                                        -->
-    <!--   For directory listing customization. Checks localXsltFile, then      -->
-    <!--   globalXsltFile, then defaults to original behavior.                  -->
-    <!--                                                                        -->
-    <!--    localXsltFile       Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet residing    -->
-    <!--                        in that directory. This overrides               -->
-    <!--                        contextXsltFile and globalXsltFile[null]        -->
-    <!--                                                                        -->
-    <!--    contextXsltFile     Make directory listings an XML doc and          -->
-    <!--                        pass the result to this style sheet which is    -->
-    <!--                        relative to the context root. This overrides    -->
-    <!--                        globalXsltFile[null]                            -->
-    <!--                                                                        -->
-    <!--    globalXsltFile      Site wide configuration version of              -->
-    <!--                        localXsltFile. This argument must either be an  -->
-    <!--                        absolute or relative (to either                 -->
-    <!--                        $CATALINA_BASE/conf or $CATALINA_HOME/conf)     -->
-    <!--                        path that points to a location below either     -->
-    <!--                        $CATALINA_BASE/conf (checked first) or          -->
-    <!--                        $CATALINA_HOME/conf (checked second).[null]     -->
-    <!--                                                                        -->
-    <!--    showServerInfo      Should server information be presented in the   -->
-    <!--                        response sent to clients when directory         -->
-    <!--                        listings is enabled? [true]                     -->
-    <!--                                                                        -->
-    <!--    allowPartialPut     Should the server treat an HTTP PUT request     -->
-    <!--                        with a Range header as a partial PUT? Note      -->
-    <!--                        that RFC 7233 clarified that Range headers are  -->
-    <!--                        only valid for GET requests. [true]             -->
+         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+         version="6.0">
+
+    <!-- ======================== Introduction ============================== -->
+    <!-- This document defines default values for *all* web applications      -->
+    <!-- loaded into this instance of Tomcat.  As each application is         -->
+    <!-- deployed, this file is processed, followed by the                    -->
+    <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+    <!-- applications.                                                        -->
+    <!--                                                                      -->
+    <!-- WARNING:  Do not configure application-specific resources here!      -->
+    <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+    <!-- Set the default request and response character encodings to UTF-8.   -->
+    <request-character-encoding>UTF-8</request-character-encoding>
+    <response-character-encoding>UTF-8</response-character-encoding>
+
+
+    <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+    <!-- The default servlet for all web applications, that serves static     -->
+    <!-- resources.  It processes all requests that are not mapped to other   -->
+    <!-- servlets with servlet mappings (defined either here or in your own   -->
+    <!-- web.xml file).  This servlet supports the following initialization   -->
+    <!-- parameters (default values are in square brackets):                  -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet. Useful values are 0, 1, and   -->
+    <!--                       11 where higher values mean more detail. [0]   -->
+    <!--                                                                      -->
+    <!--   fileEncoding        Encoding to be used to read static resources   -->
+    <!--                       [platform default]                             -->
+    <!--                                                                      -->
+    <!--   useBomIfPresent     If a static file contains a byte order mark    -->
+    <!--                       (BOM), should this be used to determine the    -->
+    <!--                       file encoding in preference to fileEncoding.   -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   input               Input buffer size (in bytes) when reading      -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   listings            Should directory listings be produced if there -->
+    <!--                       is no welcome file in this directory?  [false] -->
+    <!--                       WARNING: Listings for directories with many    -->
+    <!--                       entries can be slow and may consume            -->
+    <!--                       significant proportions of server resources.   -->
+    <!--                                                                      -->
+    <!--   output              Output buffer size (in bytes) when writing     -->
+    <!--                       resources to be served.  [2048]                -->
+    <!--                                                                      -->
+    <!--   readonly            Is this context "read only", so HTTP           -->
+    <!--                       commands like PUT and DELETE are               -->
+    <!--                       rejected?  [true]                              -->
+    <!--                                                                      -->
+    <!--   readmeFile          File to display together with the directory    -->
+    <!--                       contents. [null]                               -->
+    <!--                                                                      -->
+    <!--   sendfileSize        If the connector used supports sendfile, this  -->
+    <!--                       represents the minimal file size in KiB for    -->
+    <!--                       which sendfile will be used. Use a negative    -->
+    <!--                       value to always disable sendfile.  [48]        -->
+    <!--                                                                      -->
+    <!--   useAcceptRanges     Should the Accept-Ranges header be included    -->
+    <!--                       in responses where appropriate? [true]         -->
+    <!--                                                                      -->
+    <!--  For directory listing customization. Checks localXsltFile, then     -->
+    <!--  globalXsltFile, then defaults to original behavior.                 -->
+    <!--                                                                      -->
+    <!--   localXsltFile       Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet residing   -->
+    <!--                       in that directory. This overrides              -->
+    <!--                       contextXsltFile and globalXsltFile[null]       -->
+    <!--                                                                      -->
+    <!--   contextXsltFile     Make directory listings an XML doc and         -->
+    <!--                       pass the result to this style sheet which is   -->
+    <!--                       relative to the context root. This overrides   -->
+    <!--                       globalXsltFile[null]                           -->
+    <!--                                                                      -->
+    <!--   globalXsltFile      Site wide configuration version of             -->
+    <!--                       localXsltFile. This argument must either be an -->
+    <!--                       absolute or relative (to either                -->
+    <!--                       $CATALINA_BASE/conf or $CATALINA_HOME/conf)    -->
+    <!--                       path that points to a location below either    -->
+    <!--                       $CATALINA_BASE/conf (checked first) or         -->
+    <!--                       $CATALINA_HOME/conf (checked second).[null]    -->
+    <!--                                                                      -->
+    <!--   showServerInfo      Should server information be presented in the  -->
+    <!--                       response sent to clients when directory        -->
+    <!--                       listings is enabled? [true]                    -->
+    <!--                                                                      -->
+    <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
+    <!--                       with a Range header as a partial PUT? Note     -->
+    <!--                       that while RFC 7233 clarified that Range       -->
+    <!--                       headers only valid for GET requests, RFC 9110  -->
+    <!--                       (which obsoletes RFC 7233) now allows partial  -->
+    <!--                       puts. [true]                                   -->
+
     <servlet>
         <servlet-name>default</servlet-name>
         <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
@@ -116,144 +130,143 @@
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
-    <!--  The JSP page compiler and execution servlet, which is the mechanism   -->
-    <!--  used by Tomcat to support JSP pages.  Traditionally, this servlet     -->
-    <!--  is mapped to the URL pattern "*.jsp".  This servlet supports the      -->
-    <!--  following initialization parameters (default values are in square     -->
-    <!--  brackets):                                                            -->
-    <!--                                                                        -->
-    <!--    checkInterval       If development is false and checkInterval is    -->
-    <!--                        greater than zero, background compilations are  -->
-    <!--                        enabled. checkInterval is the time in seconds   -->
-    <!--                        between checks to see if a JSP page (and its    -->
-    <!--                        dependent files) needs to  be recompiled. [0]   -->
-    <!--                                                                        -->
-    <!--    classdebuginfo      Should the class file be compiled with          -->
-    <!--                        debugging information?  [true]                  -->
-    <!--                                                                        -->
-    <!--    classpath           What class path should I use while compiling    -->
-    <!--                        generated servlets?  [Created dynamically       -->
-    <!--                        based on the current web application]           -->
-    <!--                                                                        -->
-    <!--    compiler            Which compiler Ant should use to compile JSP    -->
-    <!--                        pages.  See the jasper documentation for more   -->
-    <!--                        information.                                    -->
-    <!--                                                                        -->
-    <!--    compilerSourceVM    Compiler source VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    compilerTargetVM    Compiler target VM. [1.8]                       -->
-    <!--                                                                        -->
-    <!--    development         Is Jasper used in development mode? If true,    -->
-    <!--                        the frequency at which JSPs are checked for     -->
-    <!--                        modification may be specified via the           -->
-    <!--                        modificationTestInterval parameter. [true]      -->
-    <!--                                                                        -->
-    <!--    displaySourceFragment                                               -->
-    <!--                        Should a source fragment be included in         -->
-    <!--                        exception messages? [true]                      -->
-    <!--                                                                        -->
-    <!--    dumpSmap            Should the SMAP info for JSR45 debugging be     -->
-    <!--                        dumped to a file? [false]                       -->
-    <!--                        False if suppressSmap is true                   -->
-    <!--                                                                        -->
-    <!--    enablePooling       Determines whether tag handler pooling is       -->
-    <!--                        enabled. This is a compilation option. It will  -->
-    <!--                        not alter the behaviour of JSPs that have       -->
-    <!--                        already been compiled. [true]                   -->
-    <!--                                                                        -->
-    <!--    engineOptionsClass  Allows specifying the Options class used to     -->
-    <!--                        configure Jasper. If not present, the default   -->
-    <!--                        EmbeddedServletOptions will be used.            -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    errorOnUseBeanInvalidClassAttribute                                 -->
-    <!--                        Should Jasper issue an error when the value of  -->
-    <!--                        the class attribute in an useBean action is     -->
-    <!--                        not a valid bean class?  [true]                 -->
-    <!--                                                                        -->
-    <!--    fork                Tell Ant to fork compiles of JSP pages so that  -->
-    <!--                        a separate JVM is used for JSP page compiles    -->
-    <!--                        from the one Tomcat is running in. [true]       -->
-    <!--                                                                        -->
-    <!--    genStringAsCharArray                                                -->
-    <!--                        Should text strings be generated as char        -->
-    <!--                        arrays, to improve performance in some cases?   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    ieClassId           The class-id value to be sent to Internet       -->
-    <!--                        Explorer when using <jsp:plugin> tags.          -->
-    <!--                        [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]    -->
-    <!--                                                                        -->
-    <!--    javaEncoding        Java file encoding to use for generating java   -->
-    <!--                        source files. [UTF8]                            -->
-    <!--                                                                        -->
-    <!--    keepgenerated       Should we keep the generated Java source code   -->
-    <!--                        for each page instead of deleting it? [true]    -->
-    <!--                                                                        -->
-    <!--    mappedfile          Should we generate static content with one      -->
-    <!--                        print statement per input line, to ease         -->
-    <!--                        debugging?  [true]                              -->
-    <!--                                                                        -->
-    <!--    maxLoadedJsps       The maximum number of JSPs that will be loaded  -->
-    <!--                        for a web application. If more than this        -->
-    <!--                        number of JSPs are loaded, the least recently   -->
-    <!--                        used JSPs will be unloaded so that the number   -->
-    <!--                        of JSPs loaded at any one time does not exceed  -->
-    <!--                        this limit. A value of zero or less indicates   -->
-    <!--                        no limit. [-1]                                  -->
-    <!--                                                                        -->
-    <!--    jspIdleTimeout      The amount of time in seconds a JSP can be      -->
-    <!--                        idle before it is unloaded. A value of zero     -->
-    <!--                        or less indicates never unload. [-1]            -->
-    <!--                                                                        -->
-    <!--    modificationTestInterval                                            -->
-    <!--                        Causes a JSP (and its dependent files) to not   -->
-    <!--                        be checked for modification during the          -->
-    <!--                        specified time interval (in seconds) from the   -->
-    <!--                        last time the JSP was checked for               -->
-    <!--                        modification. A value of 0 will cause the JSP   -->
-    <!--                        to be checked on every access.                  -->
-    <!--                        Used in development mode only. [4]              -->
-    <!--                                                                        -->
-    <!--    recompileOnFail     If a JSP compilation fails should the           -->
-    <!--                        modificationTestInterval be ignored and the     -->
-    <!--                        next access trigger a re-compilation attempt?   -->
-    <!--                        Used in development mode only and is disabled   -->
-    <!--                        by default as compilation may be expensive and  -->
-    <!--                        could lead to excessive resource usage.         -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    scratchdir          What scratch directory should we use when       -->
-    <!--                        compiling JSP pages?  [default work directory   -->
-    <!--                        for the current web application]                -->
-    <!--                        This option is ignored when running under a     -->
-    <!--                        SecurityManager.                                -->
-    <!--                                                                        -->
-    <!--    suppressSmap        Should the generation of SMAP info for JSR45    -->
-    <!--                        debugging be suppressed?  [false]               -->
-    <!--                                                                        -->
-    <!--    trimSpaces          Should template text that consists entirely of  -->
-    <!--                        whitespace be removed from the output (true),   -->
-    <!--                        replaced with a single space (single) or left   -->
-    <!--                        unchanged (false)? Note that if a JSP page or   -->
-    <!--                        tag file specifies a trimDirectiveWhitespaces   -->
-    <!--                        value of true, that will take precedence over   -->
-    <!--                        this configuration setting for that page/tag.   -->
-    <!--                        [false]                                         -->
-    <!--                                                                        -->
-    <!--    xpoweredBy          Determines whether X-Powered-By response        -->
-    <!--                        header is added by generated servlet.  [false]  -->
-    <!--                                                                        -->
-    <!--    strictQuoteEscaping When scriptlet expressions are used for         -->
-    <!--                        attribute values, should the rules in JSP.1.6   -->
-    <!--                        for the escaping of quote characters be         -->
-    <!--                        strictly applied? [true]                        -->
-    <!--                                                                        -->
-    <!--    quoteAttributeEL    When EL is used in an attribute value on a      -->
-    <!--                        JSP page should the rules for quoting of        -->
-    <!--                        attributes described in JSP.1.6 be applied to   -->
-    <!--                        the expression? [true]                          -->
+
+
+    <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+    <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+    <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+    <!-- following initialization parameters (default values are in square    -->
+    <!-- brackets):                                                           -->
+    <!--                                                                      -->
+    <!--   checkInterval       If development is false and checkInterval is   -->
+    <!--                       greater than zero, background compilations are -->
+    <!--                       enabled. checkInterval is the time in seconds  -->
+    <!--                       between checks to see if a JSP page (and its   -->
+    <!--                       dependent files) needs to  be recompiled. [0]  -->
+    <!--                                                                      -->
+    <!--   classdebuginfo      Should the class file be compiled with         -->
+    <!--                       debugging information?  [true]                 -->
+    <!--                                                                      -->
+    <!--   classpath           What class path should I use while compiling   -->
+    <!--                       generated servlets?  [Created dynamically      -->
+    <!--                       based on the current web application]          -->
+    <!--                                                                      -->
+    <!--   compiler            Which compiler Ant should use to compile JSP   -->
+    <!--                       pages.  See the jasper documentation for more  -->
+    <!--                       information.                                   -->
+    <!--                                                                      -->
+    <!--   compilerSourceVM    Compiler source VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   compilerTargetVM    Compiler target VM. [11]                      -->
+    <!--                                                                      -->
+    <!--   development         Is Jasper used in development mode? If true,   -->
+    <!--                       the frequency at which JSPs are checked for    -->
+    <!--                       modification may be specified via the          -->
+    <!--                       modificationTestInterval parameter. [true]     -->
+    <!--                                                                      -->
+    <!--   displaySourceFragment                                              -->
+    <!--                       Should a source fragment be included in        -->
+    <!--                       exception messages? [true]                     -->
+    <!--                                                                      -->
+    <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+    <!--                       dumped to a file? [false]                      -->
+    <!--                       False if suppressSmap is true                  -->
+    <!--                                                                      -->
+    <!--   enablePooling       Determines whether tag handler pooling is      -->
+    <!--                       enabled. This is a compilation option. It will -->
+    <!--                       not alter the behaviour of JSPs that have      -->
+    <!--                       already been compiled. [true]                  -->
+    <!--                                                                      -->
+    <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+    <!--                       configure Jasper. If not present, the default  -->
+    <!--                       EmbeddedServletOptions will be used.           -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   errorOnUseBeanInvalidClassAttribute                                -->
+    <!--                       Should Jasper issue an error when the value of -->
+    <!--                       the class attribute in an useBean action is    -->
+    <!--                       not a valid bean class?  [true]                -->
+    <!--                                                                      -->
+    <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+    <!--                       a separate JVM is used for JSP page compiles   -->
+    <!--                       from the one Tomcat is running in. [true]      -->
+    <!--                                                                      -->
+    <!--   genStringAsCharArray                                               -->
+    <!--                       Should text strings be generated as char       -->
+    <!--                       arrays, to improve performance in some cases?  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   javaEncoding        Java file encoding to use for generating java  -->
+    <!--                       source files. [UTF8]                           -->
+    <!--                                                                      -->
+    <!--   keepgenerated       Should we keep the generated Java source code  -->
+    <!--                       for each page instead of deleting it? [true]   -->
+    <!--                                                                      -->
+    <!--   mappedfile          Should we generate static content with one     -->
+    <!--                       print statement per input line, to ease        -->
+    <!--                       debugging?  [true]                             -->
+    <!--                                                                      -->
+    <!--   maxLoadedJsps       The maximum number of JSPs that will be loaded -->
+    <!--                       for a web application. If more than this       -->
+    <!--                       number of JSPs are loaded, the least recently  -->
+    <!--                       used JSPs will be unloaded so that the number  -->
+    <!--                       of JSPs loaded at any one time does not exceed -->
+    <!--                       this limit. A value of zero or less indicates  -->
+    <!--                       no limit. [-1]                                 -->
+    <!--                                                                      -->
+    <!--   jspIdleTimeout      The amount of time in seconds a JSP can be     -->
+    <!--                       idle before it is unloaded. A value of zero    -->
+    <!--                       or less indicates never unload. [-1]           -->
+    <!--                                                                      -->
+    <!--   modificationTestInterval                                           -->
+    <!--                       Causes a JSP (and its dependent files) to not  -->
+    <!--                       be checked for modification during the         -->
+    <!--                       specified time interval (in seconds) from the  -->
+    <!--                       last time the JSP was checked for              -->
+    <!--                       modification. A value of 0 will cause the JSP  -->
+    <!--                       to be checked on every access.                 -->
+    <!--                       Used in development mode only. [4]             -->
+    <!--                                                                      -->
+    <!--   recompileOnFail     If a JSP compilation fails should the          -->
+    <!--                       modificationTestInterval be ignored and the    -->
+    <!--                       next access trigger a re-compilation attempt?  -->
+    <!--                       Used in development mode only and is disabled  -->
+    <!--                       by default as compilation may be expensive and -->
+    <!--                       could lead to excessive resource usage.        -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   scratchdir          What scratch directory should we use when      -->
+    <!--                       compiling JSP pages?  [default work directory  -->
+    <!--                       for the current web application]               -->
+    <!--                       This option is ignored when running under a    -->
+    <!--                       SecurityManager.                               -->
+    <!--                                                                      -->
+    <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+    <!--                       debugging be suppressed?  [false]              -->
+    <!--                                                                      -->
+    <!--   trimSpaces          Should template text that consists entirely of -->
+    <!--                       whitespace be removed from the output (true),  -->
+    <!--                       replaced with a single space (single) or left  -->
+    <!--                       unchanged (false)? Note that if a JSP page or  -->
+    <!--                       tag file specifies a trimDirectiveWhitespaces  -->
+    <!--                       value of true, that will take precedence over  -->
+    <!--                       this configuration setting for that page/tag.  -->
+    <!--                       [false]                                        -->
+    <!--                                                                      -->
+    <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+    <!--                       header is added by generated servlet.  [false] -->
+    <!--                                                                      -->
+    <!--   strictQuoteEscaping When scriptlet expressions are used for        -->
+    <!--                       attribute values, should the rules in JSP.1.6  -->
+    <!--                       for the escaping of quote characters be        -->
+    <!--                       strictly applied? [true]                       -->
+    <!--                                                                      -->
+    <!--   quoteAttributeEL    When EL is used in an attribute value on a     -->
+    <!--                       JSP page should the rules for quoting of       -->
+    <!--                       attributes described in JSP.1.6 be applied to  -->
+    <!--                       the expression? [true]                         -->
+
     <servlet>
         <servlet-name>jsp</servlet-name>
         <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
@@ -272,337 +285,372 @@
         </init-param>
         <load-on-startup>3</load-on-startup>
     </servlet>
-    <!--  NOTE: An SSI Filter is also available as an alternative SSI           -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing servlet, which processes SSI          -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this servlet is mapped to the    -->
-    <!--  URL pattern "*.shtml".  This servlet supports the following           -->
-    <!--  initialization parameters (default values are in square brackets):    -->
-    <!--                                                                        -->
-    <!--    buffered            Should output from this servlet be buffered?    -->
-    <!--                        (0=false, 1=true)  [0]                          -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    inputEncoding       The encoding to assume for SSI resources if     -->
-    <!--                        one is not available from the resource.         -->
-    <!--                        [Platform default]                              -->
-    <!--                                                                        -->
-    <!--    outputEncoding      The encoding to use for the page that results   -->
-    <!--                        from the SSI processing. [UTF-8]                -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+
+
+    <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing servlet, which processes SSI         -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+    <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+    <!-- initialization parameters (default values are in square brackets):   -->
+    <!--                                                                      -->
+    <!--   buffered            Should output from this servlet be buffered?   -->
+    <!--                       (0=false, 1=true)  [0]                         -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+    <!--                       one is not available from the resource.        -->
+    <!--                       [Platform default]                             -->
+    <!--                                                                      -->
+    <!--   outputEncoding      The encoding to use for the page that results  -->
+    <!--                       from the SSI processing. [UTF-8]               -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <servlet>
-        <servlet-name>ssi</servlet-name>
-        <servlet-class>
-          org.apache.catalina.ssi.SSIServlet
-        </servlet-class>
-        <init-param>
-          <param-name>buffered</param-name>
-          <param-value>1</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-        <load-on-startup>4</load-on-startup>
-    </servlet>
- -->
-    <!--  Common Gateway Includes (CGI) processing servlet, which supports      -->
-    <!--  execution of external applications that conform to the CGI spec       -->
-    <!--  requirements.  Typically, this servlet is mapped to the URL pattern   -->
-    <!--  "/cgi-bin/*", which means that any CGI applications that are          -->
-    <!--  executed must be present within the web application.  This servlet    -->
-    <!--  supports the following initialization parameters (default values      -->
-    <!--  are in square brackets):                                              -->
-    <!--                                                                        -->
-    <!--    cgiPathPrefix        The CGI search path will start at              -->
-    <!--                         webAppRootDir + File.separator + this prefix.  -->
-    <!--                         If not set, then webAppRootDir is used.        -->
-    <!--                         Recommended value: WEB-INF/cgi                 -->
-    <!--                                                                        -->
-    <!--   cmdLineArgumentsDecoded                                              -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual decoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. This is to           -->
-    <!--                         work-around various issues when Java passes    -->
-    <!--                         the arguments to the OS. See the CGI How-To    -->
-    <!--                         for more details. The default varies by        -->
-    <!--                         platform.                                      -->
-    <!--                         Windows: [[a-zA-Z0-9\Q-_.\\/:\E]+]             -->
-    <!--                         Others:  [.*]                                  -->
-    <!--                         Note that internally the CGI Servlet treats    -->
-    <!--                         [.*] as a special case to improve performance  -->
-    <!--                                                                        -->
-    <!--    cmdLineArgumentsEncoded                                             -->
-    <!--                         Only used when enableCmdLineArguments is       -->
-    <!--                         true. The pattern that individual encoded      -->
-    <!--                         command line arguments must match else the     -->
-    <!--                         request will be rejected. The default matches  -->
-    <!--                         the allowed values defined by RFC3875.         -->
-    <!--                         [[a-zA-Z0-9\Q%;/?:@&,$-_.!~*'()\E]+]           -->
-    <!--                                                                        -->
-    <!--    enableCmdLineArguments                                              -->
-    <!--                         Are command line parameters generated from     -->
-    <!--                         the query string as per section 4.4 of 3875    -->
-    <!--                         RFC? [false]                                   -->
-    <!--                                                                        -->
-    <!--    executable           Name of the executable used to run the         -->
-    <!--                         script. [perl]                                 -->
-    <!--                                                                        -->
-    <!--    envHttpHeaders       A regular expression used to select the HTTP   -->
-    <!--                         headers passed to the CGI process as           -->
-    <!--                         environment variables. Note that headers are   -->
-    <!--                         converted to upper case before matching and    -->
-    <!--                         that the entire header name must match the     -->
-    <!--                         pattern.                                       -->
-    <!--                         [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|   -->
-    <!--                          IF-[-0-9A-Z]*|REFERER|USER-AGENT]             -->
-    <!--                                                                        -->
-    <!--   environment-variable- An environment to be set for the execution     -->
-    <!--                         environment of the CGI script. The name of     -->
-    <!--                         variable is taken from the parameter name.     -->
-    <!--                         To configure an environment variable named     -->
-    <!--                         FOO, configure a parameter named               -->
-    <!--                         environment-variable-FOO. The parameter value  -->
-    <!--                         is used as the environment variable value.     -->
-    <!--                         The default is no environment variables.       -->
-    <!--                                                                        -->
-    <!--    parameterEncoding    Name of parameter encoding to be used with     -->
-    <!--                         CGI servlet.                                   -->
-    <!--                         [System.getProperty("file.encoding","UTF-8")]  -->
-    <!--                                                                        -->
-    <!--    passShellEnvironment Should the shell environment variables (if     -->
-    <!--                         any) be passed to the CGI script? [false]      -->
-    <!--                                                                        -->
-    <!--    stderrTimeout        The time (in milliseconds) to wait for the     -->
-    <!--                         reading of stderr to complete before           -->
-    <!--                         terminating the CGI process. [2000]            -->
+        <servlet>
+            <servlet-name>ssi</servlet-name>
+            <servlet-class>
+              org.apache.catalina.ssi.SSIServlet
+            </servlet-class>
+            <init-param>
+              <param-name>buffered</param-name>
+              <param-value>1</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+            <load-on-startup>4</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+    <!-- execution of external applications that conform to the CGI spec      -->
+    <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+    <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+    <!-- executed must be present within the web application.  This servlet   -->
+    <!-- supports the following initialization parameters (default values     -->
+    <!-- are in square brackets):                                             -->
+    <!--                                                                      -->
+    <!--   cgiPathPrefix        The CGI search path will start at             -->
+    <!--                        webAppRootDir + File.separator + this prefix. -->
+    <!--                        If not set, then webAppRootDir is used.       -->
+    <!--                        Recommended value: WEB-INF/cgi                -->
+    <!--                                                                      -->
+    <!--  cmdLineArgumentsDecoded                                             -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual decoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. This is to          -->
+    <!--                        work-around various issues when Java passes   -->
+    <!--                        the arguments to the OS. See the CGI How-To   -->
+    <!--                        for more details. The default varies by       -->
+    <!--                        platform.                                     -->
+    <!--                        Windows: [[\w\Q-.\\/:\E]+]                    -->
+    <!--                        Others:  [.*]                                 -->
+    <!--                        Note that internally the CGI Servlet treats   -->
+    <!--                        [.*] as a special case to improve performance -->
+    <!--                                                                      -->
+    <!--   cmdLineArgumentsEncoded                                            -->
+    <!--                        Only used when enableCmdLineArguments is      -->
+    <!--                        true. The pattern that individual encoded     -->
+    <!--                        command line arguments must match else the    -->
+    <!--                        request will be rejected. The default matches -->
+    <!--                        the allowed values defined by RFC3875.        -->
+    <!--                        [[\w\Q%;/?:@&,$-.!~*'()\E]+]                  -->
+    <!--                                                                      -->
+    <!--   enableCmdLineArguments                                             -->
+    <!--                        Are command line parameters generated from    -->
+    <!--                        the query string as per section 4.4 of 3875   -->
+    <!--                        RFC? [false]                                  -->
+    <!--                                                                      -->
+    <!--   executable           Name of the executable used to run the        -->
+    <!--                        script. [perl]                                -->
+    <!--                                                                      -->
+    <!--   envHttpHeaders       A regular expression used to select the HTTP  -->
+    <!--                        headers passed to the CGI process as          -->
+    <!--                        environment variables. Note that headers are  -->
+    <!--                        converted to upper case before matching and   -->
+    <!--                        that the entire header name must match the    -->
+    <!--                        pattern.                                      -->
+    <!--                        [ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|  -->
+    <!--                         IF-[-0-9A-Z]*|REFERER|USER-AGENT]            -->
+    <!--                                                                      -->
+    <!--  environment-variable- An environment to be set for the execution    -->
+    <!--                        environment of the CGI script. The name of    -->
+    <!--                        variable is taken from the parameter name.    -->
+    <!--                        To configure an environment variable named    -->
+    <!--                        FOO, configure a parameter named              -->
+    <!--                        environment-variable-FOO. The parameter value -->
+    <!--                        is used as the environment variable value.    -->
+    <!--                        The default is no environment variables.      -->
+    <!--                                                                      -->
+    <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+    <!--                        CGI servlet.                                  -->
+    <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+    <!--                                                                      -->
+    <!--   passShellEnvironment Should the shell environment variables (if    -->
+    <!--                        any) be passed to the CGI script? [false]     -->
+    <!--                                                                      -->
+    <!--   stderrTimeout        The time (in milliseconds) to wait for the    -->
+    <!--                        reading of stderr to complete before          -->
+    <!--                        terminating the CGI process. [2000]           -->
+
     <!--
-    <servlet>
-        <servlet-name>cgi</servlet-name>
-        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
-        <init-param>
-          <param-name>cgiPathPrefix</param-name>
-          <param-value>WEB-INF/cgi</param-value>
-        </init-param>
-        <load-on-startup>5</load-on-startup>
-    </servlet>
- -->
-    <!--  ================ Built In Servlet Mappings =========================  -->
-    <!--  The servlet mappings for the built in servlets defined above.  Note   -->
-    <!--  that, by default, the CGI and SSI servlets are *not* mapped.  You     -->
-    <!--  must uncomment these mappings (or add them to your application's own  -->
-    <!--  web.xml deployment descriptor) to enable these services               -->
-    <!--  The mapping for the default servlet  -->
+        <servlet>
+            <servlet-name>cgi</servlet-name>
+            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+            <init-param>
+              <param-name>cgiPathPrefix</param-name>
+              <param-value>WEB-INF/cgi</param-value>
+            </init-param>
+            <load-on-startup>5</load-on-startup>
+        </servlet>
+    -->
+
+
+    <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+    <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+    <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+    <!-- must uncomment these mappings (or add them to your application's own -->
+    <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-    <!--  The mappings for the JSP servlet  -->
+
+    <!-- The mappings for the JSP servlet -->
     <servlet-mapping>
         <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
     </servlet-mapping>
-    <!--  The mapping for the SSI servlet  -->
+
+    <!-- The mapping for the SSI servlet -->
     <!--
-    <servlet-mapping>
-        <servlet-name>ssi</servlet-name>
-        <url-pattern>*.shtml</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  The mapping for the CGI Gateway servlet  -->
+        <servlet-mapping>
+            <servlet-name>ssi</servlet-name>
+            <url-pattern>*.shtml</url-pattern>
+        </servlet-mapping>
+    -->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
     <!--
-    <servlet-mapping>
-        <servlet-name>cgi</servlet-name>
-        <url-pattern>/cgi-bin/*</url-pattern>
-    </servlet-mapping>
- -->
-    <!--  ================== Built In Filter Definitions =====================  -->
-    <!--  A filter that sets various security related HTTP Response headers.    -->
-    <!--  This filter supports the following initialization parameters          -->
-    <!--  (default values are in square brackets):                              -->
-    <!--                                                                        -->
-    <!--    hstsEnabled         Should the HTTP Strict Transport Security       -->
-    <!--                        (HSTS) header be added to the response? See     -->
-    <!--                        RFC 6797 for more information on HSTS. [true]   -->
-    <!--                                                                        -->
-    <!--    hstsMaxAgeSeconds   The max age value that should be used in the    -->
-    <!--                        HSTS header. Negative values will be treated    -->
-    <!--                        as zero. [0]                                    -->
-    <!--                                                                        -->
-    <!--    hstsIncludeSubDomains                                               -->
-    <!--                        Should the includeSubDomains parameter be       -->
-    <!--                        included in the HSTS header.                    -->
-    <!--                                                                        -->
-    <!--    antiClickJackingEnabled                                             -->
-    <!--                        Should the anti click-jacking header            -->
-    <!--                        X-Frame-Options be added to every response?     -->
-    <!--                        [true]                                          -->
-    <!--                                                                        -->
-    <!--    antiClickJackingOption                                              -->
-    <!--                        What value should be used for the header. Must  -->
-    <!--                        be one of DENY, SAMEORIGIN, ALLOW-FROM          -->
-    <!--                        (case-insensitive). [DENY]                      -->
-    <!--                                                                        -->
-    <!--    antiClickJackingUri IF ALLOW-FROM is used, what URI should be       -->
-    <!--                        allowed? []                                     -->
-    <!--                                                                        -->
-    <!--    blockContentTypeSniffingEnabled                                     -->
-    <!--                        Should the header that blocks content type      -->
-    <!--                        sniffing be added to every response? [true]     -->
+        <servlet-mapping>
+            <servlet-name>cgi</servlet-name>
+            <url-pattern>/cgi-bin/*</url-pattern>
+        </servlet-mapping>
+    -->
+
+
+    <!-- ================== Built In Filter Definitions ===================== -->
+
+    <!-- A filter that sets various security related HTTP Response headers.   -->
+    <!-- This filter supports the following initialization parameters         -->
+    <!-- (default values are in square brackets):                             -->
+    <!--                                                                      -->
+    <!--   hstsEnabled         Should the HTTP Strict Transport Security      -->
+    <!--                       (HSTS) header be added to the response? See    -->
+    <!--                       RFC 6797 for more information on HSTS. [true]  -->
+    <!--                                                                      -->
+    <!--   hstsMaxAgeSeconds   The max age value that should be used in the   -->
+    <!--                       HSTS header. Negative values will be treated   -->
+    <!--                       as zero. [0]                                   -->
+    <!--                                                                      -->
+    <!--   hstsIncludeSubDomains                                              -->
+    <!--                       Should the includeSubDomains parameter be      -->
+    <!--                       included in the HSTS header.                   -->
+    <!--                                                                      -->
+    <!--   antiClickJackingEnabled                                            -->
+    <!--                       Should the anti click-jacking header           -->
+    <!--                       X-Frame-Options be added to every response?    -->
+    <!--                       [true]                                         -->
+    <!--                                                                      -->
+    <!--   antiClickJackingOption                                             -->
+    <!--                       What value should be used for the header. Must -->
+    <!--                       be one of DENY, SAMEORIGIN, ALLOW-FROM         -->
+    <!--                       (case-insensitive). [DENY]                     -->
+    <!--                                                                      -->
+    <!--   antiClickJackingUri IF ALLOW-FROM is used, what URI should be      -->
+    <!--                       allowed? []                                    -->
+    <!--                                                                      -->
+    <!--   blockContentTypeSniffingEnabled                                    -->
+    <!--                       Should the header that blocks content type     -->
+    <!--                       sniffing be added to every response? [true]    -->
     <!--
-    <filter>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that sets character encoding that is used to decode  -->
-    <!--  parameters in a POST request  -->
+        <filter>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that sets character encoding that is used to decode -->
+    <!-- parameters in a POST request -->
     <!--
-    <filter>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
-        <init-param>
-            <param-name>encoding</param-name>
-            <param-value>UTF-8</param-value>
-        </init-param>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  A filter that triggers request parameters parsing and rejects the     -->
-    <!--  request if some parameters were skipped because of parsing errors or  -->
-    <!--  request size limitations.                                             -->
+        <filter>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
+            <init-param>
+                <param-name>encoding</param-name>
+                <param-value>UTF-8</param-value>
+            </init-param>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+    <!-- A filter that triggers request parameters parsing and rejects the    -->
+    <!-- request if some parameters were skipped because of parsing errors or -->
+    <!-- request size limitations.                                            -->
     <!--
-    <filter>
-        <filter-name>failedRequestFilter</filter-name>
-        <filter-class>
-          org.apache.catalina.filters.FailedRequestFilter
-        </filter-class>
-        <async-supported>true</async-supported>
-    </filter>
- -->
-    <!--  NOTE: An SSI Servlet is also available as an alternative SSI          -->
-    <!--  implementation. Use either the Servlet or the Filter but NOT both.    -->
-    <!--                                                                        -->
-    <!--  Server Side Includes processing filter, which processes SSI           -->
-    <!--  directives in HTML pages consistent with similar support in web       -->
-    <!--  servers like Apache.  Traditionally, this filter is mapped to the     -->
-    <!--  URL pattern "*.shtml", though it can be mapped to "*" as it will      -->
-    <!--  selectively enable/disable SSI processing based on mime types. For    -->
-    <!--  this to work you will need to uncomment the .shtml mime type          -->
-    <!--  definition towards the bottom of this file.                           -->
-    <!--  The contentType init param allows you to apply SSI processing to JSP  -->
-    <!--  pages, JavaScript, or any other content you wish.  This filter        -->
-    <!--  supports the following initialization parameters (default values are  -->
-    <!--  in square brackets):                                                  -->
-    <!--                                                                        -->
-    <!--    contentType         A regex pattern that must be matched before     -->
-    <!--                        SSI processing is applied.                      -->
-    <!--                        [text/x-server-parsed-html(;.*)?]               -->
-    <!--                                                                        -->
-    <!--    debug               Debugging detail level for messages logged      -->
-    <!--                        by this servlet.  [0]                           -->
-    <!--                                                                        -->
-    <!--    expires             The number of seconds before a page with SSI    -->
-    <!--                        directives will expire.  [No default]           -->
-    <!--                                                                        -->
-    <!--    isVirtualWebappRelative                                             -->
-    <!--                        Should "virtual" paths be interpreted as        -->
-    <!--                        relative to the context root, instead of        -->
-    <!--                        the server root? [false]                        -->
-    <!--                                                                        -->
-    <!--    allowExec           Is use of the exec command enabled? [false]     -->
+        <filter>
+            <filter-name>failedRequestFilter</filter-name>
+            <filter-class>
+              org.apache.catalina.filters.FailedRequestFilter
+            </filter-class>
+            <async-supported>true</async-supported>
+        </filter>
+    -->
+
+
+    <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+    <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+    <!--                                                                      -->
+    <!-- Server Side Includes processing filter, which processes SSI          -->
+    <!-- directives in HTML pages consistent with similar support in web      -->
+    <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+    <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+    <!-- selectively enable/disable SSI processing based on mime types. For   -->
+    <!-- this to work you will need to uncomment the .shtml mime type         -->
+    <!-- definition towards the bottom of this file.                          -->
+    <!-- The contentType init param allows you to apply SSI processing to JSP -->
+    <!-- pages, JavaScript, or any other content you wish.  This filter       -->
+    <!-- supports the following initialization parameters (default values are -->
+    <!-- in square brackets):                                                 -->
+    <!--                                                                      -->
+    <!--   contentType         A regex pattern that must be matched before    -->
+    <!--                       SSI processing is applied.                     -->
+    <!--                       [text/x-server-parsed-html(;.*)?]              -->
+    <!--                                                                      -->
+    <!--   debug               Debugging detail level for messages logged     -->
+    <!--                       by this servlet.  [0]                          -->
+    <!--                                                                      -->
+    <!--   expires             The number of seconds before a page with SSI   -->
+    <!--                       directives will expire.  [No default]          -->
+    <!--                                                                      -->
+    <!--   isVirtualWebappRelative                                            -->
+    <!--                       Should "virtual" paths be interpreted as       -->
+    <!--                       relative to the context root, instead of       -->
+    <!--                       the server root? [false]                       -->
+    <!--                                                                      -->
+    <!--   allowExec           Is use of the exec command enabled? [false]    -->
+
     <!--
-    <filter>
-        <filter-name>ssi</filter-name>
-        <filter-class>
-          org.apache.catalina.ssi.SSIFilter
-        </filter-class>
-        <init-param>
-          <param-name>contentType</param-name>
-          <param-value>text/x-server-parsed-html(;.*)?</param-value>
-        </init-param>
-        <init-param>
-          <param-name>debug</param-name>
-          <param-value>0</param-value>
-        </init-param>
-        <init-param>
-          <param-name>expires</param-name>
-          <param-value>666</param-value>
-        </init-param>
-        <init-param>
-          <param-name>isVirtualWebappRelative</param-name>
-          <param-value>false</param-value>
-        </init-param>
-    </filter>
- -->
-    <!--  ==================== Built In Filter Mappings ======================  -->
-    <!--  The mapping for the HTTP header security Filter  -->
+        <filter>
+            <filter-name>ssi</filter-name>
+            <filter-class>
+              org.apache.catalina.ssi.SSIFilter
+            </filter-class>
+            <init-param>
+              <param-name>contentType</param-name>
+              <param-value>text/x-server-parsed-html(;.*)?</param-value>
+            </init-param>
+            <init-param>
+              <param-name>debug</param-name>
+              <param-value>0</param-value>
+            </init-param>
+            <init-param>
+              <param-name>expires</param-name>
+              <param-value>666</param-value>
+            </init-param>
+            <init-param>
+              <param-name>isVirtualWebappRelative</param-name>
+              <param-value>false</param-value>
+            </init-param>
+        </filter>
+    -->
+
+
+    <!-- ==================== Built In Filter Mappings ====================== -->
+
+    <!-- The mapping for the HTTP header security Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>httpHeaderSecurity</filter-name>
-        <url-pattern>/*</url-pattern>
-        <dispatcher>REQUEST</dispatcher>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Set Character Encoding Filter  -->
+        <filter-mapping>
+            <filter-name>httpHeaderSecurity</filter-name>
+            <url-pattern>/*</url-pattern>
+            <dispatcher>REQUEST</dispatcher>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Set Character Encoding Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>setCharacterEncodingFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the Failed Request Filter  -->
+        <filter-mapping>
+            <filter-name>setCharacterEncodingFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the Failed Request Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>failedRequestFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
- -->
-    <!--  The mapping for the SSI Filter  -->
+        <filter-mapping>
+            <filter-name>failedRequestFilter</filter-name>
+            <url-pattern>/*</url-pattern>
+        </filter-mapping>
+    -->
+
+    <!-- The mapping for the SSI Filter -->
     <!--
-    <filter-mapping>
-        <filter-name>ssi</filter-name>
-        <url-pattern>*.shtml</url-pattern>
-    </filter-mapping>
- -->
-    <!--  ==================== Default Session Configuration =================  -->
-    <!--  You can set the default session timeout (in minutes) for all newly    -->
-    <!--  created sessions by modifying the value below.                        -->
+        <filter-mapping>
+            <filter-name>ssi</filter-name>
+            <url-pattern>*.shtml</url-pattern>
+        </filter-mapping>
+    -->
+
+
+    <!-- ==================== Default Session Configuration ================= -->
+    <!-- You can set the default session timeout (in minutes) for all newly   -->
+    <!-- created sessions by modifying the value below.                       -->
+
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
-    <!--  ===================== Default MIME Type Mappings ===================  -->
-    <!--  When serving static resources, Tomcat will automatically generate     -->
-    <!--  a "Content-Type" header based on the resource's filename extension,   -->
-    <!--  based on these mappings.  Additional mappings can be added here (to   -->
-    <!--  apply to all web applications), or in your own application's web.xml  -->
-    <!--  deployment descriptor.                                                -->
-    <!--  Note: Extensions are always matched in a case-insensitive manner.     -->
+
+
+    <!-- ===================== Default MIME Type Mappings =================== -->
+    <!-- When serving static resources, Tomcat will automatically generate    -->
+    <!-- a "Content-Type" header based on the resource's filename extension,  -->
+    <!-- based on these mappings.  Additional mappings can be added here (to  -->
+    <!-- apply to all web applications), or in your own application's web.xml -->
+    <!-- deployment descriptor.                                               -->
+    <!-- Note: Extensions are always matched in a case-insensitive manner.    -->
+
     <mime-mapping>
         <extension>123</extension>
         <mime-type>application/vnd.lotus-1-2-3</mime-type>
@@ -1727,6 +1775,10 @@
         <extension>ggb</extension>
         <mime-type>application/vnd.geogebra.file</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>ggs</extension>
+        <mime-type>application/vnd.geogebra.slides</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>ggt</extension>
         <mime-type>application/vnd.geogebra.tool</mime-type>
@@ -2081,7 +2133,7 @@
     </mime-mapping>
     <mime-mapping>
         <extension>js</extension>
-        <mime-type>application/javascript</mime-type>
+        <mime-type>text/javascript</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>jsf</extension>
@@ -2431,6 +2483,10 @@
         <extension>mjp2</extension>
         <mime-type>video/mj2</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>mjs</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>mk3d</extension>
         <mime-type>video/x-matroska</mime-type>
@@ -2772,17 +2828,17 @@
         <mime-type>application/oda</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Database  -->
+        <!-- OpenDocument Database -->
         <extension>odb</extension>
         <mime-type>application/vnd.oasis.opendocument.database</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Chart  -->
+        <!-- OpenDocument Chart -->
         <extension>odc</extension>
         <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Formula  -->
+        <!-- OpenDocument Formula -->
         <extension>odf</extension>
         <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
     </mime-mapping>
@@ -2791,32 +2847,32 @@
         <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing  -->
+        <!-- OpenDocument Drawing -->
         <extension>odg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Image  -->
+        <!-- OpenDocument Image -->
         <extension>odi</extension>
         <mime-type>application/vnd.oasis.opendocument.image</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Master Document  -->
+        <!-- OpenDocument Master Document -->
         <extension>odm</extension>
         <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation  -->
+        <!-- OpenDocument Presentation -->
         <extension>odp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet  -->
+        <!-- OpenDocument Spreadsheet -->
         <extension>ods</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text  -->
+        <!-- OpenDocument Text -->
         <extension>odt</extension>
         <mime-type>application/vnd.oasis.opendocument.text</mime-type>
     </mime-mapping>
@@ -2833,7 +2889,7 @@
         <mime-type>video/ogg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  xiph mime types  -->
+        <!-- xiph mime types -->
         <extension>ogx</extension>
         <mime-type>application/ogg</mime-type>
     </mime-mapping>
@@ -2869,6 +2925,10 @@
         <extension>oprc</extension>
         <mime-type>application/vnd.palm</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>opus</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
     <mime-mapping>
         <extension>org</extension>
         <mime-type>application/vnd.lotus-organizer</mime-type>
@@ -2890,12 +2950,12 @@
         <mime-type>font/otf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Drawing Template  -->
+        <!-- OpenDocument Drawing Template -->
         <extension>otg</extension>
         <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  HTML Document Template  -->
+        <!-- HTML Document Template -->
         <extension>oth</extension>
         <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
     </mime-mapping>
@@ -2904,17 +2964,17 @@
         <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Presentation Template  -->
+        <!-- OpenDocument Presentation Template -->
         <extension>otp</extension>
         <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Spreadsheet Template  -->
+        <!-- OpenDocument Spreadsheet Template -->
         <extension>ots</extension>
         <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  OpenDocument Text Template  -->
+        <!-- OpenDocument Text Template -->
         <extension>ott</extension>
         <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
     </mime-mapping>
@@ -3539,7 +3599,7 @@
         <extension>shtml</extension>
         <mime-type>text/x-server-parsed-html</mime-type>
     </mime-mapping>
-     -->
+    -->
     <mime-mapping>
         <extension>sid</extension>
         <mime-type>image/x-mrsid-image</mime-type>
@@ -4225,7 +4285,7 @@
         <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Wireless Bitmap  -->
+        <!-- Wireless Bitmap -->
         <extension>wbmp</extension>
         <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
@@ -4290,22 +4350,22 @@
         <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Source  -->
+        <!-- WML Source -->
         <extension>wml</extension>
         <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML  -->
+        <!-- Compiled WML -->
         <extension>wmlc</extension>
         <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  WML Script Source  -->
+        <!-- WML Script Source -->
         <extension>wmls</extension>
         <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!--  Compiled WML Script  -->
+        <!-- Compiled WML Script -->
         <extension>wmlsc</extension>
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
@@ -4673,22 +4733,25 @@
         <extension>zmm</extension>
         <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
     </mime-mapping>
-    <!--  ==================== Default Welcome File List =====================  -->
-    <!--  When a request URI refers to a directory, the default servlet looks   -->
-    <!--  for a "welcome file" within that directory and, if present, to the    -->
-    <!--  corresponding resource URI for display.                               -->
-    <!--  If no welcome files are present, the default servlet either serves a  -->
-    <!--  directory listing (see default servlet configuration on how to        -->
-    <!--  customize) or returns a 404 status, depending on the value of the     -->
-    <!--  listings setting.                                                     -->
-    <!--                                                                        -->
-    <!--  If you define welcome files in your own application's web.xml         -->
-    <!--  deployment descriptor, that list *replaces* the list configured       -->
-    <!--  here, so be sure to include any of the default values that you wish   -->
-    <!--  to use within your application.                                        -->
+
+    <!-- ==================== Default Welcome File List ===================== -->
+    <!-- When a request URI refers to a directory, the default servlet looks  -->
+    <!-- for a "welcome file" within that directory and, if present, to the   -->
+    <!-- corresponding resource URI for display.                              -->
+    <!-- If no welcome files are present, the default servlet either serves a -->
+    <!-- directory listing (see default servlet configuration on how to       -->
+    <!-- customize) or returns a 404 status, depending on the value of the    -->
+    <!-- listings setting.                                                    -->
+    <!--                                                                      -->
+    <!-- If you define welcome files in your own application's web.xml        -->
+    <!-- deployment descriptor, that list *replaces* the list configured      -->
+    <!-- here, so be sure to include any of the default values that you wish  -->
+    <!-- to use within your application.                                      -->
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
-</web-app>
\ No newline at end of file
+
+</web-app>