可以配置数据的“名称/值”对,其中名称是属性关键字而值是字符串值,可以使用这些“名称/值”对来设置内部系统配置属性。 定义新属性以配置管理控制台中可用的设置之外的设置。 以下是一些可用 Web 容器定制属性的列表。
完成以下步骤以指定 Web 容器定制属性:
- 在管理控制台中,单击 服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > Web 容器设置 > Web 容器。
- 从 其他属性中,选择 定制属性。
- 从 " 定制属性 " 页面,单击 新建。
- 在设置页面中,在 名称 字段中输入要配置的定制属性的名称,并在 值 字段中输入要将其设置为的值。
- 单击应用或确定。
- 单击控制台任务栏上的保存以保存您的配置更改。
- 重新启动服务器。
服务器随附了以下定制属性列表。 文档 JavaServer 特定于页面的 Web 容器定制属性和 HTTP 传输定制属性列示在产品文档的单独区域中。
您可以使用 "定制属性" 页面来定义以下属性,以供 Java™ 虚拟机使用。
BodyContentBuffSize
JavaServer Pages (JSP) 文件的主体内容缓冲区的大小可能会影响一些应用程序的性能。 缺省情况下,主体内容缓冲区大小为 512 字节。 但是,您可以使用 BodyContentBuffSize
定制属性来设置其他缓冲区值。
名称 | 缺省值 |
---|---|
BodyContentBuffSize | 512 |
com.ibm.ws.jsf.disablealternatefacesconfigsearch
对服务器上所有的 Web 应用程序禁用针对 META-INF/*.faces-config.xml 进行的 MyFaces 搜索。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsf.disablealternatefacesconfigsearch | 否 |
com.ibm.ws.jsp.allowExpressionFactoryPerApp
如果其他 JavaServer Faces (JSF) 应用程序已部署在服务器中,并且使用除缺省值以外的表达式语言 (EL) 解析器,那么您部署的 JSF 应用程序可能发生以下错误:
java.lang.IllegalArgumentException:
argument type mismatch:.javax.el.ELException
..
at
org.apache.myfaces.view.facelets.el.TagValueExpression.setValue
(TagValueExpression.java:129)
at javax.faces.component.UIInput.updateModel(UIInput.java:420)
at
javax.faces.component.UIInput.processUpdates(UIInput.java:339)
...
要避免此错误,请将 com.ibm.ws.jsp.allowExpressionFactoryPerApp 属性设置为 true。 此定制属性装入应用程序设置的表达式工厂。 它还指示应用程序正在使用定制 EL 实现,例如需要设置其自己的表达式工厂的 Java 统一表达式语言。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsp.allowExpressionFactoryPerApp | 否 |
com.ibm.ws.jsp.doNotEscapeWhitespaceCharsInExpression
通常,标记文件中的表达式语言 (EL) 表达式在 JavaServer Pages (JSP) 编译前进行求值。 但是,要确保语法中包含回车符 (\r) ,换行符 (\n) 或制表符 (\t) 字符的 EL 表达式不会导致 javax.el.Exceptionable 异常,请将 com.ibm.ws.jsp.expressionistic 定制属性设置为 true。 定制属性适用于整个 Web 容器。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsp.doNotEscapeWhitespaceCharsInExpression | 否 |
要启用特定应用程序的行为,请在应用程序的 ibm-web-ext.xml 文件中将 doNotEscapeWhitespaceCharsInExpression 属性设置为 true 。
com.ibm.ws.jsp.enableDefaultIsELIgnoredInTag
通常,标记文件中的表达式语言 (EL) 表达式在 JavaServer Pages (JSP) 编译前进行求值。 但是,在某些情况下,如果 <el-ignored> 属性设置为 true,那么不会对标记文件中的这些 EL 表达式进行求值。
要确保始终对 EL 表达式进行求值,请将com.ibm.ws.jsp.enableDefaultIsELIgnoredInTag
定制属性设置为 true。 此属性的缺省值为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsp.enableDefaultIsELIgnoredInTag | 否 |
com.ibm.ws.jsp.expressionreturnemptystring
此属性允许您指示是否希望 JSP 容器对表达式中未设置的值返回空字符或 Null。
表达式有可能返回 Null 值,例如,对于以下表达式,当 testBean
中的 testValue
为 Null 时,情况便是如此:
<input type='text' name='test' value='<%=testBean.getTestValue()%>'maxlength=“16”>
某些应用程序期望这些情况下返回空字符串而不是 Null 值。 如果您运行的应用程序期望返回空字符串,请对 Web 容器设置添加此定制属性,并将此属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsp.expressionreturnemptystring | 否 |
com.ibm.ws.jsp.getWriterOnEmptyBuffer
动态高速缓存服务使用清仓操作来确定一个可高速缓存的 Web 片段(例如 JSP include 或 c:import
)何时结束以及下一个 Web 片段何时开始。 如果针对 JSP 引擎将 com.ibm.wsspi.jsp.usecdatatrim
定制属性设置为 true ,那么将除去生成的 Java 代码中的所有空格和额外行。 在这种情况下,在第一次执行清仓之前,可能没有任何要写的内容。 如果生成的 Java 代码在第一次清空之前包含文本或其他代码,那么将进行正常动态高速缓存服务处理。
如果将 com.ibm.wsspi.jsp.usecdatatrim
定制属性设置为 true,并且要使用动态高速缓存服务,那么还必须将 com.ibm.ws.jsp.getWriterOnEmptyBuffer
定制属性设置为 true。 此定制属性要求 JSP 引擎在到达第一个可高速缓存的 Web 片段的末尾时调用 flush 函数,即使没有要清空的任何数据也是如此。 此属性的缺省值为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.jsp.getWriterOnEmptyBuffer | 否 |
com.ibm.ws.jsp.limitBuffer
JavaServer Pages (JSP) 文件的标记主体的主体内容缓冲区大小将进行复用以优化性能。 如果标记主体的大小增大到超出缺省主体内容缓冲区大小的程度,那么该缓冲区将调整大小以容纳标记主体。 但是,在处理请求之后,缓冲区不会重置为缺省大小。 因此,org.apache.jasper.runtime.BodyContentImpl
实现所使用的堆内存可能会随时间推移而增加。 您可以通过对 BodyContentBuffSize
定制属性设置一个整数值来配置主体内容缓冲区大小。 有关更多信息,请参阅
com.ibm.ws.jsp.zosReCompile
使用 com.ibm.ws.jsp.zosReCompile
属性来指定线程尝试锁定 JSP 的次数。
在线程获取 JSP 的锁定之后,线程会确定是否已编译 JSP。 如果未编译 JSP,那么线程会尝试编译 JSP。
如果在尝试指定次数之后,线程仍无法编译 JSP,那么会发出错误消息。 线程不会进行任何其他尝试来编译 JSP。
名称 | 缺省值 |
---|---|
缺省值 | 5 |
com.ibm.ws.webcontainer.ADD_STS_HEADER_WEBAPP
从 V 9.0.0.2开始,可以为 HTTPs 请求添加 HSTS 响应头。 要启用此选项,请设置 Web 应用程序上下文参数定制属性。 显示的参数值是一个示例:
<context-param> <param-name>com.ibm.ws.webcontainer.ADD_STS_HEADER_WEBAPP</param-name> <param-value>max-age=31536000; includeSubDomains; preload</param-value> </context-param>
(可选) 添加服务器级别的定制属性。 显示的值是一个示例:
com.ibm.ws.webcontainer.addStrictTransportSecurityHeader="max-age=31536000; includeSubDomains"
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ADD_STS_HEADER_WEBAPP | 否 |
com.ibm.ws.webcontainer.allowDotsinName
如果请求的静态文件的名称中包含多个连续点,那么服务器会将该请求作为被禁止请求而拒绝。
当此属性设置为 true 时,将为请求的文件提供服务。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.allowDotsinName | 否 |
com.ibm.ws.webcontainer.allowPrivAccessGetResource
对于使用 EDR(扩展文档根)选项定义的文件,不会将该文件的路径视为已安装应用程序工件的一部分。 因此,需要有特殊许可权才能访问此文件。 如果未在 Web 应用程序中为此文件提供必需的许可权,那么将发出 Java.security.AccessControlException
:访问遭拒 (java.io.FilePermission) 异常。
当此属性设置为 true 时,允许应用程序访问 EDR 中定义了其路径的文件。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.allowPrivAccessGetResource | 否 |
com.ibm.ws.webcontainer.AllowQueryParamWithNoEqual
如果 URL 中的查询参数仅包含字符串 name
而不是期望的 name=value
格式,那么服务器会将 request.getParameter(name
) 查询的值返回为空。
当此属性设置为 true时,如果 URL 中的查询参数仅包含字符串 name
,那么服务器将返回空字符串作为 request.getParameter(name
) 查询的值。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.AllowQueryParamWithNoEqual | 否 |
com.ibm.ws.webcontainer.appendMetaInfResourcesInLooseLib
将应用程序部署在松散配置中,并且主要用于开发环境或服务器时,此属性将移除其他路径。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.appendMetaInfResourcesInLooseLib | 否 |
com.ibm.ws.webcontainer.asyncmaxsizetaskpool
此定制属性指定用来存放所分派的异步 Servlet 的任务队列的最大大小。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.asyncmaxsizetaskpool | 5000 |
com.ibm.ws.webcontainer.asyncpurgeinterval
此定制属性指定 Web 容器应该以何时间间隔清除任务队列以释放所取消任务的资源。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.asyncpurgeinterval | 30,000 美元 |
com.ibm.ws.webcontainer.channelwritetype
缺省情况下,Web 容器使用异步写,以块的形式将响应数据写入响应缓冲区,直到达到响应缓冲区大小为止。 如果响应较大,超过响应缓冲区大小,那么在等待响应数据块的异步写操作完成时,Web 容器会继续将响应数据缓存到内存。 此过程可能导致部分大型响应保存在内存中,这可能会导致内存使用率过高,并可能导致内存不足错误。 如果服务器同时处理的请求数超过 Web 容器定义的线程数,那么也可能会造成应用程序服务器挂起。
如果将 com.ibm.ws.webcontainer.channelwritetype
属性设置为 sync,那么会使用同步写,否则在缺省情况下,会使用异步写。 借助同步写,会以块的形式同步写入响应数据,直到达到 responsebuffersize 值所表示的大小为止,此后,在等待响应数据块的同步写操作完成时,不会将任何响应数据缓存到内存。 因此,存放在内存中的近似最大响应数据量等于 responsebuffersize 乘以 Web 容器线程数。 Web 容器可以同时处理的最大请求数,受 Web 容器线程数限制。 在等待进行中的请求完成时,会将其他请求放入队列。
responsebuffersize Web 容器定制属性会定义 Web 容器在单一块中写入的最大响应数据量(在缺省情况下,为 32K)。 因此,使用它来更改 Web 容器在发送完整响应数据时所需执行的写入次数。 然而,如果应用程序清空响应数据,那么不论 responsebuffersize 为何,都会立即写入 Web 容器所挂起的任何响应数据。
使用以下名称/值对,通过同步写来写入数据块。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.channelwritetype | async |
com.ibm.ws.webcontainer.checkEDRinGetRealPath
如果资源存在于 extendedDocumentRoot 路径中,而不存在于应用程序安装路径中,那么 ServletContext.getRealPath() Java Servlet API 不会返回所请求的资源的正确路径。 如果您希望在应用程序安装路径中找不到所请求的资源时 ServletContext.getRealPath() Java Servlet API 在 extendedDocumentRoot 路径中查找该资源,请将 com.ibm.ws.webcontainer.checkEDRinGetRealPath
定制属性设置为 true。
如果此属性设置为 true,并且在 extendedDocumentRoot 路径中也找不到所请求使用的资源,那么将返回 Null 值。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.checkEDRinGetRealPath | 否 |
com.ibm.ws.webcontainer.copyattributeskeyset
此定制属性会处理 request.getAttributeNames 方法返回值列表的情况。 如果 Servlet 使用 request.removeAttribute 方法来修改列表,那么对 nextElement 方法执行的后续调用会导致 java.util.ConcurrentModificationException 异常。 要使 Servlet 能够修改列表,请将 com.ibm.ws.webcontainer.copyattributeskeyset 定制属性设置为 true。 将此定制属性设置为 true 时,会返回属性列表的副本,这使 Servlet 能够修改列表,而不会导致在调用 nextElement 方法时产生 java.util.ConcurrentModificationException 异常。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.copyattributeskeyset | 否 |
com.ibm.ws.webcontainer.decodeParamViaReqEncoding
如果入站请求 URI 不是 UTF-8 编码,但请求编码设置为 UTF-8,那么编码值在 ISO-8859 中有所不同的字符在响应中将错误显示。 例如,如果请求通过使用 Microsoft Internet Explorer 发送,那么字符将显示为带波浪符的 n (Ñ) 字符。 要确保根据请求编码集对字符进行正确编码和解码,请向 Web 容器设置添加 com.ibm.ws.webcontainer.decodeParamViaReqEncoding
Web 容器定制属性,并将该属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.decodeParamViaReqEncoding | 否 |
com.ibm.ws.webcontainer.deferServingRequestsUntilEarStarted
此定制属性将延迟处理请求,直到整个企业归档 (EAR) 已启动为止。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.deferServingRequestsUntilEarStarted | 否 |
com.ibm.ws.webcontainer.deferServletRequestListenerDestroyOnError
如果此定制属性设置为 true,那么 Web 容器会启用 CDI 以在定制错误页上正常工作。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.deferServletRequestListenerDestroyOnError | 否 |
com.ibm.ws.webcontainer.disableServletContainerInitializersOnPreV8Apps
Web 容器在启动期间扫描应用程序类,以查看它们是否与任何 ServletContainerInitializer 定义的 HandlesTypes 注释匹配。
如果要禁用该扫描并禁用 ServletContainer初始化程序支持,请将 com.ibm.ws.webcontainer.disableServletContainerInitializersOnPreV8Apps
定制属性添加到 Web 容器配置设置,并将此属性设置为 true。
此属性的缺省值为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disableServletContainerInitializersOnPreV8Apps | 否 |
com.ibm.ws.webcontainer.disableSetCharacterEncodingAfterParametersRead
Web 容器将处理 ServletRequest API 的 setCharacterEncoding(String) 方法,即使是在解析发布数据后调用该方法也是如此。 根据 Java Servlet 规范,如果在解析数据之后调用方法,那么 Web 容器将忽略 setCharacter编码 (String) 方法。
如果您希望在解析数据后调用 setCharacterEncoding(String) 方法时 Web 容器忽略此方法,请对 Web 容器配置设置添加 com.ibm.ws.webcontainer.disableSetCharacterEncodingAfterParametersRead
定制属性,并将此属性设置为 true。
此属性的缺省值为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disableSetCharacterEncodingAfterParametersRead | 否 |
com.ibm.ws.webcontainer.disableStaticMappingCache
com.ibm.ws.webcontainer.disableStaticMappingCache 定制属性使用户可以禁用静态高速缓存。 可以在管理控制台中设置此属性,也可以通过 web.xml 中的上下文参数来设置。
要对所有已部署的应用程序禁用静态高速缓存,请使用星号。 如果要对特定应用程序禁用静态高速缓存,请使用逗号。
例如,com.ibm.ws.webcontainer.disableStaticMappingCache=* 将为所有已部署的应用程序禁用静态高速缓存。 com.ibm.ws.webcontainer.disableStaticMappingCache=SpecialApp,RareApp 将仅为这两个应用程序禁用静态高速缓存。
还可以在 web.xml 中设置一个上下文参数以为应用程序禁用静态高速缓存。 参数名称是 com.ibm.ws.webcontainer.DISABLE_STATIC_MAPPING_CACHE,并且将参数值设置为 true。
此属性没有缺省值。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disableStaticMappingCache | 无 |
com.ibm.ws.webcontainer.disableSystemAppGlobalListenerLoading
如果系统应用程序最先启动,且该应用程序尝试从与服务器类装入器相关联的共享库中装入全局侦听器,那么该应用程序无法装入该侦听器,并且会阻止后续的非系统应用程序装入或调用该侦听器。 将 com.ibm.ws.webcontainer.disableSystemAppGlobalListenerLoading
定制属性设置为 true,以阻止系统应用程序装入全局侦听器。 如果此属性设置为 true,那么系统应用程序不会尝试装入全局侦听器,但是后续的非系统应用程序可以从与服务器类装入器相关联的共享库中装入这些全局侦听器。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disableSystemAppGlobalListenerLoading | 否 |
com.ibm.ws.webcontainer.disablexPoweredBy
配置服务器安全性时,如果不希望透露运行中的服务器,可以关闭 X-Powered-By 头。 使用此定制属性可以禁用 X-Powered-By 头,这将阻止在 HTTP 响应中发送这个头。 缺省值为 false。 但是,如果要禁用这个头,请将此属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disablexPoweredBy | 否 |
com.ibm.ws.webcontainer.disallowAllFileServing
使用 com.ibm.ws.webcontainer.disallowAllFileServing
定制属性可以对特定应用程序服务器上的所有应用程序禁用文件服务。
可以使用 fileServingEnabled 定制属性,在应用程序服务器上的全局级别启用文件服务。 然而,每个应用程序的特定部署信息会覆盖 fileServingEnabled 属性。 因此,当前 fileServingEnabled 定制属性只适合于用作备份,以防应用程序本身未定义 fileServingEnabled 设置。
要在特定应用程序服务器上全局覆盖此设置,以防止该应用程序服务器处理静态文件(不论静态文件的单独部署设置为何),请使用以下名称/值对,将 com.ibm.ws.webcontainer.disallowAllFileServing
Web 容器定制属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.disallowAllFileServing | 否 |
com.ibm.ws.webcontainer.disallowServeServletsByClassname
如果已启用 ServeServletsByClassnameEnabled 属性,那么可直接访问 Servlet,这可能会导致安全漏洞。 定义以下定制属性,以禁止在整个应用程序服务器级别使用 ServeServletsByClassnameEnabled 属性。
名称 | 缺省值 | 有效值 |
---|---|---|
com.ibm.ws.webcontainer.disallowserveservletsbyclassname | true | 否 |
com.ibm.ws.webcontainer.discernUnavailableServlet
通常,在 Web 容器接收到 UnavailableException 时,它无法确定是 Servlet 还是分派的资源发出了异常。 因此,即使是分派的资源不可用,Web 容器仍会自动将 Servlet 标记为不可用。
如果正在 V7.0.0.5 或更高版本上运行,并且将 com.ibm.ws.webcontainer.discernUnavailableServlet
定制属性设置为 true,那么会将任何从分派的资源发出的 UnavailableException 放入包装器中。 此包装器使 Web 容器能够确定是从 Servlet 或还是从分派的资源发出了异常。 如果 Servlet 未发出异常,那么 Web 容器不会将 Servlet 标记为不可用。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.discernUnavailableServlet | 否 |
com.ibm.ws.webcontainer.dispatcherRethrowSER
RequestDispatcher 将异常从分派的 Servlet 传播回到分派 Servlet。 这是针对前发行版中的行为进行的更改。 如果您不希望应用程序将异常抛回到正执行分派的 Servlet,请对 Web 容器的设置添加 com.ibm.ws.webcontainer.dispatcherRethrowSER 定制属性,并将此属性设置为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.dispatcherRethrowSER | true |
受支持的配置: com.ibm.ws.webcontainer.dispatcherRethrowSError
定制属性取代 com.ibm.ws.webcontainer.dispatcherRethrowSER
定制属性。 通过将 com.ibm.ws.webcontainer.dispatcherRethrowSError
定制属性的值设置为 true 来启用此属性时,还会将 com.ibm.ws.webcontainer.dispatcherRethrowSER 定制属性设置为 true。
com.ibm.ws.webcontainer.dispatcherRethrowSError
JavaServer Pages (JSP) 文件包含编译错误时,容器将直接捕获并处理运行时错误。 异常不会传播到分派的 JSP 资源并由后者进行处理。 通过使用 com.ibm.ws.webcontainer.dispatcherRethrowSError
定制属性,异常将传播回到分派的 JSP 资源。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.dispatcherRethrowSError | 否 |
受支持的配置: com.ibm.ws.webcontainer.dispatcherRethrowSError
定制属性取代 com.ibm.ws.webcontainer.dispatcherRethrowSER 定制属性。 通过将 com.ibm.ws.webcontainer.dispatcherRethrowSError
定制属性的值设置为 true 来启用此属性时,还会将 com.ibm.ws.webcontainer.dispatcherRethrowSER
定制属性设置为 true。
com.ibm.ws.webcontainer.displayTextWhenNoErrorPageDefined
Web 容器允许在未定义错误页面时显示定制文本。 此属性影响服务器上的所有应用程序。
要在 WebSphere Application Server中使用此属性,请设置以下 Web 容器定制属性:
com.ibm.ws.webcontainer.displayTextWhenNoErrorPageDefined="display text"
要在 Liberty 概要文件服务器中使用此属性,请在 server.xml 文件中更新以下语法:
<webContainer displaytextwhennoerrorpagedefined="display text"/>
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.displayTextWhenNoErrorPageDefined | 无 |
com.ibm.ws.webcontainer.divertrecursiveexceptiontoerrorlog
在应用程序中发生递归错误时,跟踪审计方法(将消息定向到系统控制台)会记录异常消息。 如果需要改为将此消息记录在错误日志中,请对 Web 容器配置设置添加 com.ibm.ws.webcontainer.divertrecursiveexceptiontoerrorlog
定制属性,并将此属性设置为 true。 当 com.ibm.ws.webcontainer.divertrecursiveexceptiontoerrorlog property
设置为 true时,异常消息将发送到错误日志而不是系统控制台。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.divertrecursiveexceptiontoerrorlog | 否 |
com.ibm.ws.webcontainer.donotservebyclassname
com.ibm.ws.webcontainer.donotservebyclassname
定制属性指定无法按类名处理的类列表。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.donotservebyclassname | 无 |
com.ibm.ws.webcontainer.emptyServletMappings
如果设置为 true,那么当 getMappings() 方法请求了 Servlet 映射,但尚未添加任何映射时, com.ibm.ws.webcontainer.emptyServletMappings
定制属性将返回空集合。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.emptyServletMappings | 否 |
com.ibm.ws.webcontainer.enabledefaultservletrequestpathelements
要将请求正确地映射到缺省 Servlet,您需要确定正确的 Servlet 路径和 PathInfo 值。 下表显示将 com.ibm.ws.webcontainer.enabledefaultservletrequestpathelements 定制属性设置为值 true 或 false 时,对 Servlet Path 和 PathInfo 值造成的影响。
值 | Servlet Path 值 | PathInfo 值 |
---|---|---|
true | 设置为 URI 中上下文路径之后的内容 | 设置为空值 |
False | 设置为空字符串 | 根据 URI 中上下文路径之后的内容进行设置 |
com.ibm.ws.webcontainer.enableErrorExceptionTypeFirst
发生异常时,Web 容器将搜索错误页面以处理该异常。 缺省搜索顺序为:
- 任何匹配的错误代码错误页面
- 任何匹配的异常类型错误页面
始终返回匹配的错误代码页面,即使 web.xml
文件中还定义了匹配的异常类型错误页面也是如此。 要让 Web 容器在使用错误代码错误页面前进行搜索并使用异常类型错误页面,请将此属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.enableErrorExceptionTypeFirst | 否 |
com.ibm.ws.webcontainer.enableExactMatchJSecurityCheck
如果您希望允许将关键字 j_security_check 用作资源名称的组成部分,请指定此属性。 通常,如果 URI 包含关键字 j_security_check,那么将启动登录进程。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.enableExactMatchJSecurityCheck | 否 |
com.ibm.ws.webcontainer.enableJspMappingOverride
在 web.xml 文件的 jsp-property-group 中定义 url-pattern 时,它通常映射到 JavaServer Pages (JSP) 引擎并由该引擎处理。 如果应用程序必须覆盖此映射以便能够自行处理和提供 JSP 内容,那么请将 com.ibm.ws.webcontainer.enableJspMappingOverride
属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.enableJspMappingOverride | 否 |
com.ibm.ws.webcontainer.enableMultiReadOfPostData
如果要支持多次读取发布数据,请将 com.ibm.ws.webcontainer.enableMultiReadOfPostData
定制属性设置为 true。 将此属性设置为 true 后,可以将发布数据作为 InputStream 或 Reader 以及作为参数进行多次读取。
允许 Web 容器多次读取发布数据时,如果要让应用程序使用 InputStream 或 Reader 从头开始重新读取发布数据,您可以将其设置为完成下列操作:
- 获取 InputStream 或 Reader
- 读取数据
- 关闭 InputStrean 或 Reader
如果未执行第一项或第三项操作,那么对发布数据进行的下一次读取不会重置为从该数据的开头进行。
如果应用程序重新读取发布数据作为参数,那么 Web 容器将自动完成此序列。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.enableMultiReadOfPostData | 否 |
com.ibm.ws.webcontainer.enablePostOnlyJSecurityCheck
将 com.ibm.ws.webcontainer.enablePostOnlyJSecurityCheck
定制属性设置为 true 以禁用除 POST 方法以外的所有登录方法。 您可以通过 Web 容器定制属性在管理控制台中设置此定制属性。 当禁用所有登录方法时,服务器返回 404 响应状态。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.enablePostOnlyJSecurityCheck | 否 |
com.ibm.ws.webcontainer.excludehandledtypesclasses
使用 com.ibm.ws.webcontainer.excludehandledtypesclasses
定制属性来排除句柄类型类,以使这些类不会传入 ServletContainerInitializer 实现类的 onStartup 方法中。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.excludehandledtypesclasses | 否 |
com.ibm.ws.webcontainer.extractHostHeaderPort 和 trusthostheaderport
getServerPort 方法依赖于通道的 getVirtualPort 方法,此方法会按以下顺序返回端口号:
- 从请求 URL 返回端口号
- 从请求主机头返回端口号
此顺序符合 HTTP/1.1 RFC ,但不符合 Java Servlet 规范版本 2.4 API ,后者要求首先返回主机头中的端口号 (如果有) 或请求 URL。 在以上示例中,返回的正确 URL 为:http://ProxyServer:8888
。 已修改 Web 容器以从主机头返回端口号(如果有),或返回已接受客户机连接的 URL 端口。 必须将 trusthostheaderport 和 com.ibm.ws.webcontainer.extractHostHeaderPort
定制属性设置为 true,以先从请求主机头返回端口号。 通过使用管理控制台,按如下所示设置这些属性:
trusthostheaderport = true
com.ibm.ws.webcontainer.extractHostHeaderPort = true
避免麻烦: 不能在 web.xml
中设置这些属性以使其按预期生效。
您可以在管理控制台中使用以下两组“名称/值”对,将这些属性设置为 Web 容器定制属性:
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.extractHostHeaderPort | 否 |
trusthostheaderport | 否 |
com.ibm.ws.webcontainer.FileWrapperEventsLessDetail
SMF 类型 120 记录在静态文件报告的名称字段中显示静态资源的名称,而不是显示 FileServletWrapper。 如果您已从先前版本的产品进行迁移,并且希望 SMF 类型 120 记录在静态文件报告的名称字段中显示 FileServletWrapper,请对 Web 容器设置添加 com.ibm.ws.webcontainer.FileWrapperEventsLessDetail
定制属性,并将此属性设置为 true。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.FileWrapperEventsLessDetail | 否 |
com.ibm.ws.webcontainer.finishresponseonclose
使用 com.ibm.ws.webcontainer.finishresponseonclose
定制属性可以指示您希望 Web 容器在 Servlet 对写程序或输出流调用 close() 时关闭连接。
通常,Servlet 对写程序或输出流调用 close() 时,Web 容器会将已写入写程序或输出流的数据发送到客户机,等待 Servlet 的 service() 方法完成,然后再关闭连接。 此延迟可能会因为响应完成延迟而中断,在 Servlet service() 方法直到写程序或输出流关闭后才完成的情况下尤其如此。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.finishresponseonclose | 否 |
com.ibm.ws.webcontainer.ForceDifferentCookiePaths
将应用程序配置为使用 Cookie 来跟踪会话时,Cookie 的缺省路径将设置为应用程序的上下文根。 因此,该 Cookie 将仅发送到对此应用程序发出的请求。 要将缺省路径更改为 “/” (正斜杠) ,以便将 cookie 发送到此域中任何应用程序的请求,请设置 ForceDifferentCookiePaths 会话管理器定制属性。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ForceDifferentCookiePaths | 否 |
com.ibm.ws.webcontainer.handlingRequestWithOverridenPath
应用程序覆盖 URI pathinfo 时,服务器不会使用覆盖的路径来处理请求,而会使用原始请求 URI pathinfo。 如果希望服务器使用覆盖的 URI 路径,那么将 com.ibm.ws.webcontainer.handlingRequestWithOverridenPath
设置为 true。 通常,应用程序覆盖请求 URI 路径时,此 URI 路径由应用程序而不是服务器使用。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.handlingRequestWithOverridenPath | 否 |
com.ibm.ws.webcontainer.HTTPOnlyCookies
com.ibm.ws.webcontainer.HTTPOnlyCookies
定制属性提供一定程度的保护功能,不允许客户机端脚本访问受保护的 Cookie 并获取其内容。 使用此定制属性时,可以阻止在浏览器中运行的 Java 脚本访问所有 cookie 或您选择的特定 cookie 列表。 HTTPOnly 属性将添加到此定制属性中指定的每个 Cookie,并启用保护功能以阻止客户机端脚本访问。
避免麻烦: 在没有操作数的情况下指定 com.ibm.ws.webcontainer.HTTPOnlyCookies
意味着不会将 HTTPOnly 属性添加到任何 cookie ,并且在浏览器中运行的任何客户端 Java 脚本都可以访问任何 cookie 的内容。
您可以为此属性指定以下值:
- * - 星号值表示向所有 Cookie 添加 HTTPOnly 属性。
- 给定 HTTPOnly 属性的特定 cookie 的逗号分隔列表。 Cookie 可能包含通配符。 仅向此列表上的匹配 cookie 提供 HTTPOnly 属性。
以下示例说明如何指定这两项设置:
com.ibm.ws.webcontainer.HTTPOnlyCookies=*
com.ibm.ws.webcontainer.HTTPOnlyCookies=cookieName1,Account3Cookie,JsessionID
注意: 指定 com.ibm.ws.webcontainer.HTTPOnlyCookies
时使用的 Cookie 名称不区分大小写。
重要信息: 缺省情况下,已启用 JSESSIONID 和 LTPA cookie 的 HTTPOnly 属性。 在 WebSphere Application Server V 8.0之前, com.ibm.ws.security.addHttpOnlyAttributeToCookies
定制属性缺省值为 false。 对于 WebSphere Application Server Version 8.5,缺省值为 true。
对于转换用户: 缺省情况下,已启用 JSESSIONID 和 LTPA cookie 的 HTTPOnly 属性。 在 WebSphere Application Server V 8.0之前, com.ibm.ws.security.addHttpOnlyAttributeToCookies
定制属性缺省值为 false。 当前缺省值为 true。
由于现在通过使用管理控制台中的 将会话 Cookie 设置为 HTTPOnly 以帮助防止跨站点脚本编制攻击 字段来设置 HTTPOnly 属性,因此如果需要禁用此功能,请在管理控制台中单击 服务器类型> 应用程序服务器> 会话管理> Cookie,然后清除 将会话 Cookie 设置为 HTTPOnly 以帮助防止跨站点脚本编制攻击 字段。
有关这两个定制属性的交互的更多信息,请参阅“cookie 设置”和“安全性加强功能的启用和迁移注意事项”。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.HTTPOnlyCookies | 无 |
com.ibm.ws.webcontainer.ignoreinjectionfailure
如果资源或 Enterprise JavaBeans (EJB) 注入在 Servlet 初始化过程中失败,那么会将错误消息写入服务器日志文件。 但是,不会将此错误消息传播到客户机。 另外,该 Servlet 将放入到服务中,因此直到其应用程序重新启动后才会进行重新初始化。 在此期间,如果接收到引用了先前未能注入的资源的请求,那么将产生 NullPointerException 异常。 同样,在过滤器和侦听器的初始化过程中,也可能会发生此问题。
com.ibm.ws.webcontainer.ignoreinjectionfailure
定制属性允许您指定是否传播这些错误消息以及是否将 Servlet 放入到服务中。 缺省情况下,此定制属性设置为 false,这将保留上述行为。 要允许将这些注入异常传播到客户机并且不将 Servlet 放入服务,必须使此定制属性保持设置为 false。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ignoreinjectionfailure | 否 |
com.ibm.ws.webcontainer.ignoreInvalidQueryString
如果 Web 容器在查询字符串对中遇到无效的编码字符,那么会抛出 IllegalArgumentException 异常,并且在缺省情况下,会忽略整个查询字符串。 在查询字符串中的每个字段都是基本资源的应用程序中,忽略整个查询字符串可能不可取。 如果将 com.ibm.ws.webcontainer.ignoreInvalidQueryString
定制属性设置为 true,那么 Web 容器会忽略无效的查询字符串对,并继续处理有效的查询字符串对。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ignoreInvalidQueryString | 否 |
com.ibm.ws.webcontainer.ignorePostConstructOverriddenMethod
如果某个父类的带注释 @PostConstruct 方法由子类覆盖,那么调用目标子类的带注释方法时,Web 容器会调用目标子类两次。 如果将 com.ibm.ws.webcontainer.ignorePostConstructOverriddenMethod 定制属性设置为 true,那么 Web 容器仅调用目标子类方法一次,将忽略任何父类的覆盖方法。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ignorePostConstructOverriddenMethod | 否 |
com.ibm.ws.webcontainer.ignoreSemiColonOnRedirectToWelcomePage
如果此属性设置为 true,那么在重定向至欢迎页面时,Web 容器将忽略分号及分号后的所有内容。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.ignoreSemiColonOnRedirectToWelcomePage | 否 |
com.ibm.ws.webcontainer.IgnoreSessiononStaticFileRequest
对于涉及过滤器的静态文件请求,Web 容器将访问会话。 此操作可能会导致性能下降,例如,在启用了数据库会话持久性的情况下运行时,情况便是如此。 如果将 com.ibm.ws.webcontainer.IgnoreSessiononStaticFileRequest
定制属性设置为 true,那么对于涉及过滤器的静态文件请求,Web 容器无法访问会话。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.IgnoreSessiononStaticFileRequest | 否 |
com.ibm.ws.webcontainer.initFilterBeforeInitServlet
通过将 com.ibm.ws.webcontainer.initFilterBeforeInitServlet
定制属性设置为 true,可以在应用程序启动过程期间初始化“在启动时装入”Servlet 之前初始化过滤器。
避免麻烦: com.ibm.ws.webcontainer.invokeFilterInitAtStartup
属性和 com.ibm.ws.webcontainer.initFilterBeforeInitServlet
属性都必须设置为 true ,以便在应用程序启动时首先初始化过滤器。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.initFilterBeforeInitServlet | 否 |
com.ibm.ws.webcontainer.invokeFilterAfterService
com.ibm.ws.webcontainer.invokeFilterAfterService
定制属性确保 OutputStream 关闭的情况下,Web 容器不会调用失败的 flush()
。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.invokeFilterAfterService | true |
com.ibm.ws.webcontainer.invokeFilterInitAtStartup
com.ibm.ws.webcontainer.invokeFilterInitAtStartup
定制属性允许 Web 容器在应用程序启动过程期间调用 init 方法并初始化过滤器。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.invokeFilterInitAtStartup | 否 |
com.ibm.ws.webcontainer.invokeflushafterserviceforstaticfileresponsewrapper
将此定制属性设置为 false ,以便当应用程序使用响应包装器时, Web 容器不会在服务后清空对静态文件的请求的响应。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.invokeflushafterserviceforstaticfileresponsewrapper | true |
com.ibm.ws.webcontainer.KeepUnreadPostDataAfterResponseSentToClient
此属性指示在客户机响应完成(转发请求完成,或者从 sendRedirect 返回)之后,发布数据是否可供读取。 如果此属性设置为 true,那么在客户机响应完成之后,即,在转发请求完成(这是缺省行为)或者从 sendRedirect 返回(这在 com.ibm.ws.webcontainer.SendResponseToClientAsPartOfSendRedirect
定制属性设置为 true 时发生)之后,发布数据可供读取。 但是,将此属性设置为 true 要求将尚未读取的发布数据存放在内存中,直到目标资源完成为止,这将增加内存使用量。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.KeepUnreadPostDataAfterResponseSentToClient | 否 |
com.ibm.ws.webcontainer.logServletContainerInitializerClassloadingErrors
在检查应用程序的类以确定它们是否与 ServletContainerInitializer 的 HandlesTypes 注释所指定的任何条件匹配时,如果缺少一个或多个可选的应用程序 JAR 文件,那么容器可能会遇到类装入问题。 由于容器无法确定这些类型的类装入故障是否导致应用程序无法正常工作,所以它将忽略这些故障,并提供了用于记录这些故障的配置选项。
将此属性设置为 true 将开启日志记录。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.logServletContainerInitializerClassloadingErrors | 否 |
com.ibm.ws.webcontainer.mapFiltersToAsterisk
当 Web 容器处理请求时,它会将到 “*” 的 Servlet 映射识别为与到 “/*”的 Servlet 映射相同。 要通过过滤器映射来提供相同的行为,请将 com.ibm.ws.webcontainer.mapFiltersToAsterisk
定制属性设置为 true。 将 com.ibm.ws.webcontainer.mapFiltersToAsterisk
定制属性设置为 true 会导致 Web 容器将到 “*” 的过滤器映射识别为到 “/*”的过滤器映射。 此定制属性不区分大小写。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.mapFiltersToAsterisk | 否 |
整数表示多部分上载请求中允许的最大文件数,其中 -1 表示无限制。
setContentLengthOnClose
切换在应用程序显式关闭响应的情况下是否应设置内容长度。
缺省值和建议值为 true。 但是,如果应用程序响应包含双字节字符,请将该值设置为 false 。
名称 | 缺省值 |
---|---|
setContentLengthOnClose | true |
com.ibm.ws.webcontainer.servlet30compatibility
当此定制属性设置为 true时,对 servlet 3.1 进行的行为更改将还原为以下 servlet 3.0 行为:
- 如果您在
AsyncContext.dispatch()
或AsyncContext.complete()
之后调用AsyncContext.getRequest()
或AsyncContext.getResponse()
,那么服务器不会抛出 IllegalStateException。 - 如果您调用
ServletResponse.reset()
,那么不会清除getWriter()
或getOutputStream()
的调用状态。 - 如果您调用下列 ServletContext 方法,那么服务器不会抛 UnsupportedOperationException:
ServletContext.getClassLoader()
ServletContext.getEffectiveMajorVersion()
ServletContext.getEffectiveMinorVersion()
ServletContext.getFilterRegistration()
ServletContext.getFilterRegistrations()
ServletContext.getServletRegistration()
ServletContext.getServletRegistrations()
ServletContext.declareRoles()
ServletContext.getVirtualServerName()
- WebContainer 不会停止向重复 URL 映射注册 Servlet。 现有应用程序正常启动。 但是,部署包含与映射到同一 url-pattern 的多个 servlet 的冲突的新应用程序仍然无法部署。
- 不会忽略 com.ibm.ws.webcontainer.RedirectWithPathInfo WebContainer 定制属性中设置的值。
- 如果 Servlet 抛出 IOException ,并且存在针对该请求配置的过滤器,那么 WebContainer 将抛出 ServletException。
缺省值和建议值为 false。 但是,可以将值设置为 true 以还原为 3.0 行为。
名称 | 缺省值 |
---|---|
com.ibm.ws.webcontainer.servlet30compatibility | 否 |