Cint

tomcat拦截特殊字符报400,如 "|" "{" "}" ","等符号的解决方案

≯℡__Kan透↙ 提交于 2021-02-12 19:24:01
  最近在做一个项目,需要对外暴露两个接口接收别人给的参数,但是有一个问题就是对方的项目是一个老项目,在传参数的时候是将多个字符放在一个参数里面用“|”进行分割,然而他们传参数的时候又没有对“|”进行url编码这个时候他们用这个url访问我们会导致服务器一致报400的错误,而对方如果要改这个东西又很慢很麻烦,所以我百度了很久发现tomcat有一个很坑的设置就是默认会在url中有特殊字符的时候拦截并且报400。   如果我们要关闭这个设定需要到tomcat的conf目录下找到catalina.properties这个配置文件,滑到最顶端有一个被注释掉的配置(此处我已经把注释去掉了),你可以在这个配置中添加你不想让tomcat拦截的特殊字符,重启tomcat服务,之后你会发现网页就不会再报错了。 顺带一提,对方在传参的时候还有一个坑,就是使用escape的方式对中文字符加密以后再进行传输,然后jsp和servlet又无法接受到被这个加密之后的参数,收到的参数不是空字符串,而是直接为null(好吧,不如直接说根本就没接收到)。 解决方案:   1、换编码方式   2、要对字符串用escape加密两次之后传到控制层中,再使用我网上查到的一个工具类进行解密。   3、而这个对面由于要兼容多个公司的软件所以不能修改,为了解决这个问题,我使用request.getQueryString(

vba,自定义公式,农历互转公历,excel ,wps

主宰稳场 提交于 2020-11-30 07:46:20
'vba 模块内容如下 自定义公式 '公历转农历模块 '原创:互联网 '修正: '// 农历数据定义 // '先以 H2B 函数还原成长度为 18 的字符串,其定义如下: '前12个字节代表1-12月:1为大月,0为小月;压缩成十六进制(1-3位) '第13位为闰月的情况,1为大月30天,0为小月29天;(4位) '第14位为闰月的月份,如果不是闰月为0,否则给出月份(5位) '最后4位为当年农历新年的公历日期,如0131代表1月31日;当作数值转十六进制(6-7位) '农历常量(1899~2100,共202年) Private Const ylData = "AB500D2,4BD0883," _ & "4AE00DB,A5700D0,54D0581,D2600D8,D9500CC,655147D,56A00D5,9AD00CA,55D027A,4AE00D2," _ & "A5B0682,A4D00DA,D2500CE,D25157E,B5500D6,56A00CC,ADA027B,95B00D3,49717C9,49B00DC," _ & "A4B00D0,B4B0580,6A500D8,6D400CD,AB5147C,2B600D5,95700CA,52F027B,49700D2,6560682," _ & "D4A00D9,EA500CE,6A9157E,5AD00D6

[手机按键备忘]常见的脚本结构思路的补充(强化了错误代码的处理部分个人向)

和自甴很熟 提交于 2020-05-01 06:08:27
思路代码(还是以前的旧代码 并且只是思路代码 无法直接使用) // 例子:遍历读取账号文件内容 并且具备记忆功能 自动从上次的位置开始 不是粗暴的执行一个删除一个账号的处理 而是把记忆写到脚本配置里面 // 1.读取账号文件内容 // 2.对账号文件做基础的判断和处理 文件是否存在 内容是否对 是否去掉了可能的Bom头和乱码 去掉空行等等 这里粗略的写一写 // 3.获取账号文件内容转化为数组 账号文件内容数组 = file.ReadLines(账号文件路径) // 4.读取脚本本身的配置 看看是否记录了上次的行数和对应的行内容 判断里面的内容是否正常 不正常就从第一行开始 正常就按照脚本配置的内容进行 起始行数=0 脚本记录的行数 = ReadConfig("脚本记录的行数" ) 脚本记录的行内容 = ReadConfig("脚本记录的行内容" ) If Trim(脚本记录的行数) = "" or Trim(脚本记录的行内容) = "" Then // 如果脚本记录的上次的行数和行内容为空 那么这个记录就不合法 就从第一行开始了 起始行数 = 0 showmessage "起始记录是第["&cstr(起始行数+1)&"]条" Delay 500 ElseIf not IsNumeric(Trim(脚本记录的行数)) or CInt(Trim(脚本记录的行数)) < 0 Then

C++虚继承初始化顺序

穿精又带淫゛_ 提交于 2020-03-25 17:07:39
3 月,跳不动了?>>> 没有虚继承则从左往右 public D:public A,public B,public C{}; public D:public A,public C,public B{}; 有虚继承则先构造虚继承的类然后再从左往右(如果某个普通类中有虚表,也要先虚继承构造) 毕竟要避免菱形集成,就怕普通集成中有同一个基类。先构建虚表。 #include<iostream> class INT { public: int a; INT(int ca=1):a(ca){std::cout<<"cint"<<a<<std::endl;} operator int(){return a;} int operator =(int ca ){a = ca;return a;} }; class Test { public: Test(){std::cout<<"test"<<std::endl;} }; class A { public: INT a; A(int aa=12):a(aa){a=aa;std::cout<<"ca"<<a<<std::endl;} }; class B:public virtual A{ public: B(int b=1):A(b){a=b;std::cout<<"cb"<<a<<std::endl;} }; class C:public