Top Description Fields Constructors Methods
org.apache.tomcat.util.descriptor.web

public Class WebXml

extends XmlEncodingBase
implements Charset
Class Inheritance
All Implemented Interfaces
org.apache.tomcat.util.digester.DocumentProperties.Charset
Imports
java.io.UnsupportedEncodingException, java.net.URL, .URLEncoder, java.util.ArrayList, .Collection, .EnumSet, .HashMap, .HashSet, .Iterator, .LinkedHashMap, .LinkedHashSet, .List, .Map, .Map.Entry, .Set, .TreeMap, jakarta.servlet.DispatcherType, .ServletContext, .SessionTrackingMode, jakarta.servlet.descriptor.JspConfigDescriptor, .JspPropertyGroupDescriptor, .TaglibDescriptor, org.apache.juli.logging.Log, .LogFactory, org.apache.tomcat.util.buf.B2CConverter, .UDecoder, org.apache.tomcat.util.descriptor.XmlIdentifiers, org.apache.tomcat.util.digester.DocumentProperties, org.apache.tomcat.util.res.StringManager, org.apache.tomcat.util.security.Escape

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 (eg single login-config) This class checks for invalid duplicates (eg filter/servlet names) StandardContext will check validity of values (eg URL formats etc)

Field Summary

Modifier and TypeField and Description
private Set<String>
absoluteOrdering

web.xml only elements Absolute Ordering

private final Set<String>
after

web-fragment.xml only elements Relative ordering

private boolean
private final Set<String>
private final Map<String, String>
private boolean
private boolean
private String
private boolean
private final List<String>
private final Map<String, ContextLocalEjb>
private final Map<String, ContextEjb>
private final Map<String, ContextEnvironment>
private final Map<String, ErrorPage>
private final Set<String>
private final Set<FilterMap>
private final Map<String, FilterDef>
private static final String
private static final String
private static final String
private String
private final Set<JspPropertyGroup>
private final Set<String>
private final Map<String, String>
private final Log
private LoginConfig
private int
private final Map<String, MessageDestinationRef>
private final Map<String, MessageDestination>
private boolean
private final Map<String, String>
private int
private String
protected static final String
private boolean
overridable

Global defaults are overridable but Servlets and Servlet mappings need to be unique.

private Map<String, String>
private Map<String, String>
private String
private boolean
private String
private final Map<String, ContextResourceEnvRef>
private final Map<String, ContextResource>
private String
private final Set<SecurityConstraint>
private final Set<String>
private final Map<String, ContextService>
private final Set<String>
private final Map<String, String>
private final Map<String, ServletDef>
private SessionConfig
private static final StringManager
private final Map<String, String>
private URL
private boolean
private final Set<String>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
public void
public void
addAfterOrdering(String fragmentName)

public void
public void
addBeforeOrdering(String fragmentName)

public void
public void
public void
addDuplicate(String duplicate)

public void
public void
public void
public void
public void
public void
public void
public void
addListener(String className)

public void
public void
public void
public void
addMimeMapping(String extension, String mimeType)

public void
public void
public void
public void
public void
public void
addSecurityRole(String securityRole)

public void
public void
addServlet(ServletDef servletDef)

public void
addServletMapping(String urlPattern, String servletName)

public void
addServletMappingDecoded(String urlPattern, String servletName)

public void
addTaglib(String uri, String location)

public void
addWelcomeFile(String welcomeFile)

private static void
appendElement(StringBuilder sb, String indent, String elementName, String value)

private static void
appendElement(StringBuilder sb, String indent, String elementName, Object value)

public void
private static void
private String
public Set<String>
public Set<String>
public Set<String>
public Map<String, String>
public boolean
public boolean
public String
public List<String>
public Map<String, ContextLocalEjb>
public Map<String, ContextEjb>
public Map<String, ContextEnvironment>
public Map<String, ErrorPage>
public Set<FilterMap>
public Map<String, FilterDef>
public String
public JspConfigDescriptor
public Set<JspPropertyGroup>
public Set<String>
public Map<String, String>
public LoginConfig
public int
public Map<String, MessageDestinationRef>
public Map<String, MessageDestination>
public Map<String, String>
public int
public String
public Map<String, String>
public Map<String, String>
public String
public String
public Map<String, ContextResourceEnvRef>
public Map<String, ContextResource>
public String
public Set<SecurityConstraint>
public Set<String>
public Map<String, ContextService>
public Map<String, String>
public Map<String, ServletDef>
public SessionConfig
public Map<String, String>
public URL
public String
public boolean
public Set<String>
public boolean
public boolean
public boolean
public boolean
private static void
makeAfterOthersExplicit(Set<String> afterOrdering, Map<String, WebXml> fragments)

private static void
makeBeforeOthersExplicit(Set<String> beforeOrdering, Map<String, WebXml> fragments)

public boolean

Returns:

true if merge is successful, else false
merge
(Set<WebXml>
The fragments to merge in
fragments
)

Merge the supplied web fragments into this main web.xml.

private static boolean
mergeFilter(FilterDef src, FilterDef dest, boolean failOnConflict)

private boolean
mergeLifecycleCallback(Map<String, String> fragmentMap, Map<String, String> tempMap, WebXml fragment, String mapName)

private <T> boolean
mergeMap(Map<String, T> fragmentMap, Map<String, T> mainMap, Map<String, T> tempMap, WebXml fragment, String mapName)

private static boolean
mergeMultipartDef(MultipartDef src, MultipartDef dest, boolean failOnConflict)

private <T extends ResourceBase> boolean
mergeResourceMap(Map<String, T> fragmentResources, Map<String, T> mainResources, Map<String, T> tempResources, WebXml fragment)

private static boolean
mergeServlet(ServletDef src, ServletDef dest, boolean failOnConflict)

private static void
orderFragments(Set<WebXml> orderedFragments, Set<WebXml> unordered)

public static Set<WebXml>

Returns:

Ordered list of web-fragment.xml files to process
orderWebFragments
(WebXml
The application web.xml file
application
,
Map<String, WebXml>
The map of fragment names to web fragments
fragments
,
ServletContext
The servlet context the fragments are associated with
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.

private Set<WebXml>
orderWebFragments(Map<String, WebXml> fragments, ServletContext servletContext)

public void
setAlwaysAddWelcomeFiles(boolean
true to add welcome files
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.

public void
setDelegate(boolean delegate)

public void
setDenyUncoveredHttpMethods(boolean denyUncoveredHttpMethods)

public void
setDisplayName(String displayName)

public void
setDistributable(boolean distributable)

public void
setJarName(String jarName)

public void
public void
setMetadataComplete(boolean metadataComplete)

public void
public void
setOverridable(boolean overridable)

public void
setPublicId(String publicId)

public void
setReplaceWelcomeFiles(boolean
true to replace welcome files rather than add to the list
replaceWelcomeFiles
)

When merging/parsing web.xml files into this web.xml should the current set be completely replaced?

public void
setRequestCharacterEncoding(String requestCharacterEncoding)

public void
setResponseCharacterEncoding(String responseCharacterEncoding)

public void
public void
setURL(URL url)

public void
setVersion(String
Values of null will be ignored
version
)

Set the version for this web.xml file

public void
setWebappJar(boolean webappJar)

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

public String

Returns:

The complete contents of web.xml as a String
toXml
()

Generate a web.xml in String form that matches the representation stored in this object.

Inherited from org.apache.tomcat.util.descriptor.web.XmlEncodingBase:
getCharsetsetCharset