# Class WebXml

java.lang.Object
org.apache.tomcat.util.descriptor.web.XmlEncodingBase
org.apache.tomcat.util.descriptor.web.WebXml

All Implemented Interfaces:
  `DocumentProperties.Charset`

public class WebXml extends XmlEncodingBase implements DocumentProperties.Charset
Representation of common elements of web.xml and web-fragment.xml. Provides a repository for parsed data before the elements are merged. Validation is spread between multiple classes: The digester checks for structural correctness (e.g. single login-config) This class checks for invalid duplicates (e.g. filter/servlet names) StandardContext will check validity of values (e.g. URL formats etc)

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `ORDER_OTHERS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WebXml()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAbsoluteOrdering(String fragmentName)`
  `void`
  `addAbsoluteOrderingOthers()`
  `void`
  `addAfterOrdering(String fragmentName)`
  `void`
  `addAfterOrderingOthers()`
  `void`
  `addBeforeOrdering(String fragmentName)`
  `void`
  `addBeforeOrderingOthers()`
  `void`
  `addContextParam(String param, String value)`
  `void`
  `addDuplicate(String duplicate)`
  `void`
  `addEjbLocalRef(ContextLocalEjb ejbLocalRef)`
  `void`
  `addEjbRef(ContextEjb ejbRef)`
  `void`
  `addEnvEntry(ContextEnvironment envEntry)`
  `void`
  `addErrorPage(ErrorPage errorPage)`
  `void`
  `addFilter(FilterDef filter)`
  `void`
  `addFilterMapping(FilterMap filterMap)`
  `void`
  `addJspPropertyGroup(JspPropertyGroup propertyGroup)`
  `void`
  `addListener(String className)`
  `void`
  `addLocaleEncodingMapping(String locale, String encoding)`
  `void`
  `addMessageDestination(MessageDestination messageDestination)`
  `void`
  `addMessageDestinationRef(MessageDestinationRef messageDestinationRef)`
  `void`
  `addMimeMapping(String extension, String mimeType)`
  `void`
  `addPostConstructMethods(String clazz, String method)`
  `void`
  `addPreDestroyMethods(String clazz, String method)`
  `void`
  `addResourceEnvRef(ContextResourceEnvRef resourceEnvRef)`
  `void`
  `addResourceRef(ContextResource resourceRef)`
  `void`
  `addSecurityConstraint(SecurityConstraint securityConstraint)`
  `void`
  `addSecurityRole(String securityRole)`
  `void`
  `addServiceRef(ContextService serviceRef)`
  `void`
  `addServlet(ServletDef servletDef)`
  `void`
  `addServletMapping(String urlPattern, String servletName)`
  `void`
  `addServletMappingDecoded(String urlPattern, String servletName)`
  `void`
  `addTaglib(String uri, String location)`
  `void`
  `addWelcomeFile(String welcomeFile)`
  `void`
  `createAbsoluteOrdering()`
  `Set<String>`
  `getAbsoluteOrdering()`
  `Set<String>`
  `getAfterOrdering()`
  `Set<String>`
  `getBeforeOrdering()`
  `Map<String,String>`
  `getContextParams()`
  `boolean`
  `getDelegate()`
  `boolean`
  `getDenyUncoveredHttpMethods()`
  `String`
  `getDisplayName()`
  `List<String>`
  `getDuplicates()`
  `Map<String, ContextLocalEjb>`
  `getEjbLocalRefs()`
  `Map<String, ContextEjb>`
  `getEjbRefs()`
  `Map<String, ContextEnvironment>`
  `getEnvEntries()`
  `Map<String, ErrorPage>`
  `getErrorPages()`
  `Set<FilterMap>`
  `getFilterMappings()`
  `Map<String, FilterDef>`
  `getFilters()`
  `String`
  `getJarName()`
  `JspConfigDescriptor`
  `getJspConfigDescriptor()`
  `Set<JspPropertyGroup>`
  `getJspPropertyGroups()`
  `Set<String>`
  `getListeners()`
  `Map<String,String>`
  `getLocaleEncodingMappings()`
  `LoginConfig`
  `getLoginConfig()`
  `int`
  `getMajorVersion()`
  `Map<String, MessageDestinationRef>`
  `getMessageDestinationRefs()`
  `Map<String, MessageDestination>`
  `getMessageDestinations()`
  `Map<String,String>`
  `getMimeMappings()`
  `int`
  `getMinorVersion()`
  `String`
  `getName()`
  `Map<String,String>`
  `getPostConstructMethods()`
  `Map<String,String>`
  `getPreDestroyMethods()`
  `String`
  `getPublicId()`
  `String`
  `getRequestCharacterEncoding()`
  `Map<String, ContextResourceEnvRef>`
  `getResourceEnvRefs()`
  `Map<String, ContextResource>`
  `getResourceRefs()`
  `String`
  `getResponseCharacterEncoding()`
  `Set<SecurityConstraint>`
  `getSecurityConstraints()`
  `Set<String>`
  `getSecurityRoles()`
  `Map<String, ContextService>`
  `getServiceRefs()`
  `Map<String,String>`
  `getServletMappings()`
  `Map<String, ServletDef>`
  `getServlets()`
  `SessionConfig`
  `getSessionConfig()`
  `Map<String,String>`
  `getTaglibs()`
  `URL`
  `getURL()`
  `String`
  `getVersion()`
  `boolean`
  `getWebappJar()`
  `Set<String>`
  `getWelcomeFiles()`
  `boolean`
  `isDistributable()`
  `boolean`
  `isDuplicated()`
  `boolean`
  `isMetadataComplete()`
  `boolean`
  `isOverridable()`
  `boolean`
  `merge(Set<WebXml> fragments)`
  Merge the supplied web fragments into this main web.xml.
  `static Set<WebXml>`
  `orderWebFragments(WebXml application, Map<String,WebXml> fragments, ServletContext servletContext)`
  Generates the sub-set of the web-fragment.xml files to be processed in the order that the fragments must be processed as per the rules in the Servlet spec.
  `void`
  `setAlwaysAddWelcomeFiles(boolean alwaysAddWelcomeFiles)`
  When merging from this web.xml, should the welcome files be added to the target web.xml even if it already contains welcome file definitions.
  `void`
  `setDelegate(boolean delegate)`
  `void`
  `setDenyUncoveredHttpMethods(boolean denyUncoveredHttpMethods)`
  `void`
  `setDisplayName(String displayName)`
  `void`
  `setDistributable(boolean distributable)`
  `void`
  `setJarName(String jarName)`
  `void`
  `setLoginConfig(LoginConfig loginConfig)`
  `void`
  `setMetadataComplete(boolean metadataComplete)`
  `void`
  `setName(String name)`
  `void`
  `setOverridable(boolean overridable)`
  `void`
  `setPublicId(String publicId)`
  `void`
  `setReplaceWelcomeFiles(boolean replaceWelcomeFiles)`
  When merging/parsing web.xml files into this web.xml should the current set be completely replaced?
  `void`
  `setRequestCharacterEncoding(String requestCharacterEncoding)`
  `void`
  `setResponseCharacterEncoding(String responseCharacterEncoding)`
  `void`
  `setSessionConfig(SessionConfig sessionConfig)`
  `void`
  `setURL(URL url)`
  `void`
  `setVersion(String version)`
  Set the version for this web.xml file
  `void`
  `setWebappJar(boolean webappJar)`
  `String`
  `toString()`
  `String`
  `toXml()`
  Generate a web.xml in String form that matches the representation stored in this object.

  ### Methods inherited from class XmlEncodingBase

  `getCharset, setCharset`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface DocumentProperties.Charset

  `setCharset`

- ## Field Details

  - ### ORDER_OTHERS

    protected static final String ORDER_OTHERS
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### WebXml

    public WebXml()

- ## Method Details

  - ### isOverridable

    public boolean isOverridable()

  - ### setOverridable

    public void setOverridable(boolean overridable)

  - ### isDuplicated

    public boolean isDuplicated()

  - ### addDuplicate

    public void addDuplicate(String duplicate)

  - ### getDuplicates

    public List<String> getDuplicates()

  - ### createAbsoluteOrdering

    public void createAbsoluteOrdering()

  - ### addAbsoluteOrdering

    public void addAbsoluteOrdering(String fragmentName)

  - ### addAbsoluteOrderingOthers

    public void addAbsoluteOrderingOthers()

  - ### getAbsoluteOrdering

    public Set<String> getAbsoluteOrdering()

  - ### addAfterOrdering

    public void addAfterOrdering(String fragmentName)

  - ### addAfterOrderingOthers

    public void addAfterOrderingOthers()

  - ### getAfterOrdering

    public Set<String> getAfterOrdering()

  - ### addBeforeOrdering

    public void addBeforeOrdering(String fragmentName)

  - ### addBeforeOrderingOthers

    public void addBeforeOrderingOthers()

  - ### getBeforeOrdering

    public Set<String> getBeforeOrdering()

  - ### getVersion

    public String getVersion()

  - ### setVersion

    public void setVersion(String version)
    Set the version for this web.xml file
    Parameters:
      `version` - Values of `null` will be ignored

  - ### getPublicId

    public String getPublicId()

  - ### setPublicId

    public void setPublicId(String publicId)

  - ### isMetadataComplete

    public boolean isMetadataComplete()

  - ### setMetadataComplete

    public void setMetadataComplete(boolean metadataComplete)

  - ### getName

    public String getName()

  - ### setName

    public void setName(String name)

  - ### getMajorVersion

    public int getMajorVersion()

  - ### getMinorVersion

    public int getMinorVersion()

  - ### getDisplayName

    public String getDisplayName()

  - ### setDisplayName

    public void setDisplayName(String displayName)

  - ### isDistributable

    public boolean isDistributable()

  - ### setDistributable

    public void setDistributable(boolean distributable)

  - ### getDenyUncoveredHttpMethods

    public boolean getDenyUncoveredHttpMethods()

  - ### setDenyUncoveredHttpMethods

    public void setDenyUncoveredHttpMethods(boolean denyUncoveredHttpMethods)

  - ### addContextParam

    public void addContextParam(String param, String value)

  - ### getContextParams

    public Map<String,String> getContextParams()

  - ### addFilter

    public void addFilter(FilterDef filter)

  - ### getFilters

    public Map<String, FilterDef> getFilters()

  - ### addFilterMapping

    public void addFilterMapping(FilterMap filterMap)

  - ### getFilterMappings

    public Set<FilterMap> getFilterMappings()

  - ### addListener

    public void addListener(String className)

  - ### getListeners

    public Set<String> getListeners()

  - ### addServlet

    public void addServlet(ServletDef servletDef)

  - ### getServlets

    public Map<String, ServletDef> getServlets()

  - ### addServletMapping

    public void addServletMapping(String urlPattern, String servletName)

  - ### addServletMappingDecoded

    public void addServletMappingDecoded(String urlPattern, String servletName)

  - ### getServletMappings

    public Map<String,String> getServletMappings()

  - ### setSessionConfig

    public void setSessionConfig(SessionConfig sessionConfig)

  - ### getSessionConfig

    public SessionConfig getSessionConfig()

  - ### addMimeMapping

    public void addMimeMapping(String extension, String mimeType)

  - ### getMimeMappings

    public Map<String,String> getMimeMappings()

  - ### setReplaceWelcomeFiles

    public void setReplaceWelcomeFiles(boolean replaceWelcomeFiles)
    When merging/parsing web.xml files into this web.xml should the current set be completely replaced?
    Parameters:
      `replaceWelcomeFiles` - `true` to replace welcome files rather than add to the list

  - ### setAlwaysAddWelcomeFiles

    public void setAlwaysAddWelcomeFiles(boolean alwaysAddWelcomeFiles)
    When merging from this web.xml, should the welcome files be added to the target web.xml even if it already contains welcome file definitions.
    Parameters:
      `alwaysAddWelcomeFiles` - `true` to add welcome files

  - ### addWelcomeFile

    public void addWelcomeFile(String welcomeFile)

  - ### getWelcomeFiles

    public Set<String> getWelcomeFiles()

  - ### addErrorPage

    public void addErrorPage(ErrorPage errorPage)

  - ### getErrorPages

    public Map<String, ErrorPage> getErrorPages()

  - ### addTaglib

    public void addTaglib(String uri, String location)

  - ### getTaglibs

    public Map<String,String> getTaglibs()

  - ### addJspPropertyGroup

    public void addJspPropertyGroup(JspPropertyGroup propertyGroup)

  - ### getJspPropertyGroups

    public Set<JspPropertyGroup> getJspPropertyGroups()

  - ### addSecurityConstraint

    public void addSecurityConstraint(SecurityConstraint securityConstraint)

  - ### getSecurityConstraints

    public Set<SecurityConstraint> getSecurityConstraints()

  - ### setLoginConfig

    public void setLoginConfig(LoginConfig loginConfig)

  - ### getLoginConfig

    public LoginConfig getLoginConfig()

  - ### addSecurityRole

    public void addSecurityRole(String securityRole)

  - ### getSecurityRoles

    public Set<String> getSecurityRoles()

  - ### addEnvEntry

    public void addEnvEntry(ContextEnvironment envEntry)

  - ### getEnvEntries

    public Map<String, ContextEnvironment> getEnvEntries()

  - ### addEjbRef

    public void addEjbRef(ContextEjb ejbRef)

  - ### getEjbRefs

    public Map<String, ContextEjb> getEjbRefs()

  - ### addEjbLocalRef

    public void addEjbLocalRef(ContextLocalEjb ejbLocalRef)

  - ### getEjbLocalRefs

    public Map<String, ContextLocalEjb> getEjbLocalRefs()

  - ### addServiceRef

    public void addServiceRef(ContextService serviceRef)

  - ### getServiceRefs

    public Map<String, ContextService> getServiceRefs()

  - ### addResourceRef

    public void addResourceRef(ContextResource resourceRef)

  - ### getResourceRefs

    public Map<String, ContextResource> getResourceRefs()

  - ### addResourceEnvRef

    public void addResourceEnvRef(ContextResourceEnvRef resourceEnvRef)

  - ### getResourceEnvRefs

    public Map<String, ContextResourceEnvRef> getResourceEnvRefs()

  - ### addMessageDestinationRef

    public void addMessageDestinationRef(MessageDestinationRef messageDestinationRef)

  - ### getMessageDestinationRefs

    public Map<String, MessageDestinationRef> getMessageDestinationRefs()

  - ### addMessageDestination

    public void addMessageDestination(MessageDestination messageDestination)

  - ### getMessageDestinations

    public Map<String, MessageDestination> getMessageDestinations()

  - ### addLocaleEncodingMapping

    public void addLocaleEncodingMapping(String locale, String encoding)

  - ### getLocaleEncodingMappings

    public Map<String,String> getLocaleEncodingMappings()

  - ### addPostConstructMethods

    public void addPostConstructMethods(String clazz, String method)

  - ### getPostConstructMethods

    public Map<String,String> getPostConstructMethods()

  - ### addPreDestroyMethods

    public void addPreDestroyMethods(String clazz, String method)

  - ### getPreDestroyMethods

    public Map<String,String> getPreDestroyMethods()

  - ### getJspConfigDescriptor

    public JspConfigDescriptor getJspConfigDescriptor()

  - ### getRequestCharacterEncoding

    public String getRequestCharacterEncoding()

  - ### setRequestCharacterEncoding

    public void setRequestCharacterEncoding(String requestCharacterEncoding)

  - ### getResponseCharacterEncoding

    public String getResponseCharacterEncoding()

  - ### setResponseCharacterEncoding

    public void setResponseCharacterEncoding(String responseCharacterEncoding)

  - ### setURL

    public void setURL(URL url)

  - ### getURL

    public URL getURL()

  - ### setJarName

    public void setJarName(String jarName)

  - ### getJarName

    public String getJarName()

  - ### setWebappJar

    public void setWebappJar(boolean webappJar)

  - ### getWebappJar

    public boolean getWebappJar()

  - ### getDelegate

    public boolean getDelegate()

  - ### setDelegate

    public void setDelegate(boolean delegate)

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### toXml

    public String toXml()
    Generate a web.xml in String form that matches the representation stored in this object.
    Returns:
      The complete contents of web.xml as a String

  - ### merge

    public boolean merge(Set<WebXml> fragments)
    Merge the supplied web fragments into this main web.xml.
    Parameters:
      `fragments` - The fragments to merge in
    Returns:
      `true` if merge is successful, else `false`

  - ### orderWebFragments

    public static Set<WebXml> orderWebFragments(WebXml application, Map<String,WebXml> fragments, ServletContext servletContext)
    Generates the sub-set of the web-fragment.xml files to be processed in the order that the fragments must be processed as per the rules in the Servlet spec.
    Parameters:
      `application` - The application web.xml file
      `fragments` - The map of fragment names to web fragments
      `servletContext` - The servlet context the fragments are associated with
    Returns:
      Ordered list of web-fragment.xml files to process