tomcat系统属性

本文介绍了Tomcat的系统属性`STRICT_SERVLET_COMPLIANCE`,该属性用于控制Tomcat是否严格遵循Servlet规范。默认值为false,当设置为true时,会影响多个相关属性,如资源扫描、会话管理等。开启此属性可能导致与部分浏览器的兼容性问题,但允许开发者进行特定定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先给出tomcat官网关于系统的介绍地址:http://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html

 

1.org.apache.catalina. STRICT_SERVLET_COMPLIANCE:

这个属性直接翻译过来是“严格的servlet规范”,因为tomcat作为一个web容器是按照servlet规范来写的,所以必然要遵守相应的规范。但是在tomcat不断的发展过程中有一些却不是完全严格按照规范来的,所以便有了这个属性。他是一个全局属性,并且对其他一系列的属性都会产生影响。当然如果你想定制下tomcat,为某些servlet规范不是明令禁止的属性或功能进行些”自定义“那么也可以使用该属性。

例如tomcat默认不能扫描WEB-INF/lib和WEB-INF/class下的TLD文件,但是servlet规范没有强硬禁止,那么如果有所需求就可以用该属性进行定制。

 

tomcat官方文档这样描述:

The default value of this system property is false.

If this is true the default values will be changed for:

  • org.apache.catalina.core.

ApplicationContext.GET_RESOURCE_REQUIRE_SLASH

  • org.apache.catalina.core.

ApplicationDispatcher.WRAP_SAME_OBJECT

  • org.apache.catalina.core.

StandardHostValve.ACCESS_SESSION

  • org.apache.catalina.session.

StandardSession.ACTIVITY_CHECK

  • org.apache.catalina.session.

StandardSession.LAST_ACCESS_AT_START

  • org.apache.tomcat.util.http.

ServerCookie.ALWAYS_ADD_EXPIRES

  • org.apache.tomcat.util.http.

ServerCookie.FWD_SLASH_IS_SEPARATOR

  • org.apache.tomcat.util.http.

ServerCookie.PRESERVE_COOKIE_HEADER

  • org.apache.tomcat.util.http.

ServerCookie.STRICT_NAMING

  • The resourceOnlyServlets attribute of any Context element.
  • The tldValidation attribute of any Context element.
  • The useRelativeRedirects attribute of any Context element.
  • The xmlNamespaceAware attribute of any Context element.
  • The xmlValidation attribute of any Context element.

Note that changing a number of the above defaults is likely to break the majority of systems as some browsers are unable to correctly handle the cookie headers that result from a strict adherence to the specifications. Defaults, regardless of whether or not they have been changed by setting org.apache.catalina.STRICT_SERVLET_COMPLIANCE can always be overridden by explicitly setting the appropriate system property or element attribute.

### 配置Tomcat系统变量的方法 对于Apache Tomcat服务器而言,设置环境变量通常是通过修改启动脚本来完成的。这些脚本位于`$CATALINA_HOME/bin`目录下,在Linux环境中通常命名为`catalina.sh`,而在Windows环境下则是`catalina.bat`文件[^1]。 #### 修改 catalina.sh 或 catalina.bat 文件来定义自定义属性 为了向Tomcat传递额外的Java虚拟机参数或环境变量,可以在上述提到的脚本中加入新的条目。具体来说: - 对于Unix/Linux/MacOS平台上的`catalina.sh`: ```bash export JAVA_OPTS="$JAVA_OPTS -Dproperty.name=value" ``` - 对于Windows操作系统中的`catalina.bat`: ```batch set JAVA_OPTS=%JAVA_OPTS% -Dproperty.name=value ``` 这里`property.name`代表想要创建的新属性名称,而`value`则表示该属性对应的值。这种方式允许管理员灵活地调整Tomcat的行为模式以及优化性能表现。 另外一种方法是在启动命令行里直接指定所需的选项,这对于临时测试某些配置更改非常有用。例如: ```shell ./catalina.sh start -Xms512m -Xmx1024m ``` 此命令设置了最小堆大小为512MB(`-Xms`)和最大堆大小为1GB(`-Xmx`)。不过需要注意的是,这种方法不会持久化设置;每次重启服务都需要重新输入相同的指令[^4]。 最后值得注意的一点是,当涉及到更复杂的场景比如容器化部署时(如Docker),可能还需要考虑宿主机资源分配给容器的具体情况,并据此合理规划JVM内存参数以确保最佳运行效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值