System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");的含义

首先要知道System.setProperty()的意思。
setProperty (String prop, String value);设置指定键对值的系统属性

  • 参数:prop - 系统属性的名称, value - 系统属性的值。  
  • 返回:系统属性以前的值,如果没有以前的值,则返回 null。
  • 抛出: 

SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许设置指定属性。

NullPointerException - 如果 key 或 value 为 null。IllegalArgumentException - 如果 key 为空。

注:这里的system,系统指的是 JRE (runtime)system,不是指 OS。

实例:System.setProperty("Property1", "abc"); System.setProperty("Property2","def");

这样就把第一个参数设置成为系统的全局变量!可以在项目的任何一个地方 通过System.getProperty("变量");来获得。

System.setProperty 相当于一个静态变量  ,存在内存里面!


org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true ;这个是解决URL中包含%2F的问题 。
另外,org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true ;这个是解决URL中包含%5C的问题 。

默认情况下Tomcat等服务器是拒绝url中带%2F或者%5C的URL,因为它们经浏览器解析之后就变成了/和\,服务器默认是拒绝访问的,所以需要通过服务的配置来解决这个问题。

tomcat的解决方法还可以是: 添加在%TOMCAT_HOME%/conf/catalina.properties文件中。

 

 

参考:https://www.cnblogs.com/bhlsheji/p/4052504.html

你可能感兴趣的:(学习笔记,Java)