出现此原因的解决办法其一,详情可见:

https://www.cnblogs.com/dygrkf/p/9088370.html。

另一种解决方法,就是把url中不允许出现的字符编码,后台接收时再解码。

首先在tomcat7的目录apache-tomcat-7.0.88\conf中修改文件server.xml,

在<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

加入useBodyEncodingForURI="true" URIEncoding="GB2312"GB2312,编码类型自己决定)。

然后在前台编码:

string p_sUrlCopy = p_sUrl;
for (int i = 0; i < p_sUrlCopy.Length; i++)
{
  int j = (int)p_sUrlCopy[i];
  if (j > 127 || j == 34 ||j == 91 || j == 93 || j == 123 || j == 124 || j == 125)// 数字代表什么可以百度找ascii码对照表
  {
    String str = p_sUrlCopy[i].ToString();

    // 把字符转换,url进行编码

    p_sUrl = p_sUrl.Replace(str, System.Web.HttpUtility.UrlEncode(str, Encoding.GetEncoding("GB2312")));
  }
}
object l_ReturnObject = null;
try
{
  http.open("POST", p_sUrl, false, "", "");
  http.send(p_bStr);
}

后台解码:

request.setCharacterEncoding("GB2312");

tomcat7以上的版本,400BadRequest的更多相关文章

  1. 如何更改tomcat7及以上版本内存设置

    http://jingyan.baidu.com/article/295430f1c22a940c7e0050fb.html?qq-pf-to=pcqq.c2c 当在tomcat的webapps文件夹 ...

  2. 基于redis实现tomcat8及以上版本的tomcat集群的session持久化实现(tomcat-redis-session-manager二次开发)

    前言: 本项目是基于jcoleman的tomcat-redis-session-manager二次开发版本 1.修改了小部分实现逻辑 2.去除对juni.jar包的依赖 3.去除无效代码和老版本tom ...

  3. eclipse中Maven工程使用Tomcat7以上插件

    Maven中使用tomcat:run命令默认是使用Tomcat6的版本, 现在要用到Tomcat7以上的版本,在eclipse的Maven工程中配置如下 第一步:在项目的pom里面加入如下配置: 官网 ...

  4. 下载合适的tomcat版本

    Tomcat因技术先进.性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器.对于新手来讲,如何下载合适的tomcat版本呢?今天我们以下 ...

  5. tomcat7时遇到启动报错问题 SEVERE: ContainerBase.addChild: start:

    个人说明:错误日志确实是我的,方法都是从其他地儿借鉴过来的,但肯定是能解决错误的方法,亲身体验,安全保障!!! 还有遇到这种问题,多启动几遍可能就行了. 错误日志: SEVERE: Container ...

  6. jsp tomcat jdk版本对应

    jsp使用jdk8时,需要tomcat7以及以上版本,jsp在使用jdk7的时候,tomcat使用tomcat6即可

  7. Dynamic Web Module版本对应tomcat版本

    MyEclipse2017+JDK 1.8环境下 Dynamic Web Module版本3.1要对应tomcat7.0以上版本,不然部署项目时会出现错误(会出现无法部署项目的情况). Dynamic ...

  8. Windows操作系统下tomcat安装版图文教程

    下载tomcat安装文件,官方下载地址是:http://tomcat.apache.org/,本文以tomcat-7.0.26版本为例进行安装过程的说明: 1.双击apache-tomcat-7.0. ...

  9. 使用InstallAnywhere工具打包Java_Web程序

      一.准备工作 1.    下载InstallAnywhere,并安装: 2.    下载解压版jdk1.7(示例为jdk1.7.0_75): 3.    下载解压版tomcat7.0以上版本(示例 ...

随机推荐

  1. consul搭建(初步)

    http://www.cnblogs.com/java-zhao/p/5375132.html https://blog.csdn.net/u010246789/article/details/517 ...

  2. 决策树 - 可能是CART公式最严谨的介绍

    目录 决策树算法 ID3算法[1] C4.5 改进[1] "纯度"度量指标:信息增益率 离散化处理 CART(分类与回归树,二叉) 度量指标 二值化处理 不完整数据处理 CART生 ...

  3. PHP绘制验证码

    <?php        //使用PHP绘图技术,画出自己的验证码 $checkCode="";    for($i=0;$i<4;$i++){             ...

  4. 关于osi的7层与tcp的4层网络协议的理解

    osi 七层模型 应用层 提供接口 表示层 机器语言的二进制转换 对话层 决定是否传输 传输层 确定可不可靠 排差错 控流 网络层 提供逻辑地址 选路 数据链路层 mac 错误检测 物理层 设备间的比 ...

  5. Delphi写的DLL,OCX中多线程一个同步问题

    Delphi写的DLL,OCX中如果使用了TThread.Synchronze(Proc),可能导致线程死锁,原因是无法唤醒EXE中主线程, Synchronze并不会进入EXE主线程消息队列. 下面 ...

  6. php中的Register Globals

    参考: http://php.net/manual/zh/security.globals.php

  7. PAT甲级 1004.Counting Leaves

    参考:https://blog.csdn.net/qq278672818/article/details/54915636 首先贴上我一开始的部分正确代码: #include<bits/stdc ...

  8. imshow()不显示灰度图像

    在matlab中,我们常使用imshow()函数来显示图像,而此时的图像矩阵可能经过了某种运算.在matlab中,为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型.如果 ...

  9. 《JAVA程序设计》 20155208 实验四 Android程序设计

    <JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...

  10. 实验楼学习linux第一章第三节用户及文件权限管理

    用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...