精华内容
下载资源
问答
  • Tomcat 400错误

    千次阅读 2018-06-29 13:55:55
    The valid characters are defined in RFC 7230 and RFC 3986新版本的tomcat对url的参数做了比较规范的限制,必须按照RFC 7230 and RFC 3986规范,对于非保留字字符,如果不做转义处理,一律都会报The valid ...
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    新版本的tomcat对url的参数做了比较规范的限制,必须按照RFC 7230 and RFC 3986规范,对于非保留字字符,如果不做转义处理,一律都会报The valid characters are defined in RFC 7230 and RFC 3986 错误。


    org.apache.tomcat.util.http.parser.HttpParser#IS_NOT_REQUEST_TARGET[]中定义了一堆 not request target:


    参考解决方法:https://stackoverflow.com/questions/41053653/tomcat-8-is-not-able-to-handle-get-request-with-in-query-parameters


    配置tomcat的catalina.properties
    添加或者修改:
    tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

    或者:对参数进行编码!


    Tomcat 配置项:https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html



    %2C : ,            %5C : \

    展开全文
  • tomcat 400错误

    2011-01-09 01:08:08
    tomcat 配置文件 server.xml 中有这样的定义 defaultHost="localhost" 这个的作用是当你访问的时候默认给你分配到那个虚拟主机 在文件里面还有 这里定义了一个虚拟主机,那么你访问的...
    在tomcat 配置文件 server.xml 中有这样的定义
    <Engine name="Catalina" defaultHost="localhost">
    defaultHost="localhost" 这个的作用是当你访问的时候默认给你分配到那个虚拟主机
    在文件里面还有
    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    </Host>
    这里定义了一个虚拟主机,那么你访问的时候默认就分配到localhost这个虚拟主机。如果去掉defaultHost="localhost"
    你在本地访问http://localhost:8080 可以访问到应为即使没有默认,tomcat 也会用你URL里的 localhost 去对应server.xml定义的localhost主机。但是如果是远程访问的话就不行了,应为http://localhost:8080 这样的形式只有本机可以访问,远程要访问你的话 只能用http://192.168.1.121 这样的形式
    那么tomcat 首先会先找有没有defaultHost=“某个虚拟主机”如果没有默认那么会从下边定义的虚拟主机里面找结果 没有192.168.1.121 这样的主机只有一个localhost主机 就是没有找到对应的虚拟主机,这个时候就会报400错误
    或者你defaultHost指定了,当是下面没有定义对应的主机也会报 400错误。
    展开全文
  • tomcat 400错误跳转自定义页面 springMVC在web.xml设置可以拦截404,500等错误跳转到自定义页面,但是无法拦截400错误。 <error-page> <error-code>404</error-code> <location>./404....

    tomcat 400错误跳转自定义页面

    springMVC在web.xml设置可以拦截404,500等错误跳转到自定义页面,但是无法拦截400错误。

    <error-page>
    	<error-code>404</error-code>
    	<location>./404.jsp</location>
    </error-page>
    <error-page>
    	<error-code>500</error-code>
    	<location>./500.jsp</location>
    </error-page>
    

    根据官网给出的方案需要重写ErrorReportValve处理400错误跳转到自定义页面,首先需要更改tomcat中的server.xml文件,在host中添加Valve,页面将不显示错误的详细信息。

    <Host name="localhost"  appBase="webapps" 
    	unpackWARs="true" autoDeploy="true">
    	   <Valve className="org.apache.catalina.valves.ErrorReportValve" 
    	   showReport="false" showServerInfo="false" />
    </Host>
    

    然后要新建一个maven项目进行对ErrorReportValve的重写,在pom.xml里添加需要的文件。

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-catalina</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-coyote</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-el-api</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jaspic-api</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-juli</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-util</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-util-scan</artifactId>
        <version>${tomcat.version}</version>
    </dependency>
    

    重写tomcat的ErrorReportValve,新建CustomErrorReportValve

    public class CustomErrorReportValve extends ErrorReportValve
    

    重写report,读取需要的400页面,然后StringBuilder输出,也可以直接在StringBuilder中写html代码进行输出。

     @Override
     protected void report(Request request, Response response, Throwable t) {
    	 StringBuilder sb = new StringBuilder(); 
    	 response.setContentType("text/html");
    	 response.setCharacterEncoding("utf-8");
    	 sb.append("自定义HTML页面");
    	 Writer writer = response.getReporter();
    	  if (writer != null) {
    	    writer.write(sb.toString());
    	  }
    }
    

    然后项目打包。

    mvn clean compile package
    

    最后放到tomcat lib中,还需要更改server.xml文件,在host中添加errorReportValveClass为自定义class

     <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" errorReportValveClass="org.aspire.errorValve.CustomErrorReportValve">
    

    重新启动tomcat,400页面就跳转到自定义的页面了。
    (如果页面乱码在pom.xml里添加build即可解决)

    <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                   <source>1.6</source>
                   <target>1.6</target>
                   <encoding>utf-8</encoding>
               </configuration>
           </plugin>
       </plugins>
    </build>
    

    https://aspiresoftware.in/blog/catalinatomcat-custom-error-report-valve-to-handle-errors-exceptions/

    展开全文
  • 上图错误提示就是客户端发送的请求不能找到你的具体的页面或者地址,这是Spring MVC抛出的错误,这样我们就要进行参数的检查,一定是JSP提交的参数和Controller里面的参数不一致(有很多种情况,比如我的问题), ...

    1.前后台参数类型不一致

    上图错误提示就是客户端发送的请求不能找到你的具体的页面或者地址,这是Spring MVC抛出的错误,这样我们就要进行参数的检查,一定是JSP提交的参数和Controller里面的参数不一致(有很多种情况,比如我的问题),

    我的JSP代码:

    <input type="hidden" title="id" name="id" value="${admin.id}">

    在这里我的这个字段是叫做  "id" ,在看看我的controller里面的参数:

    public AdministratorOtaResponse administratorAdminUpdate(
             @RequestParam(value = "adminrId", required = true) int id,
            @RequestParam(value = "sitePassword", required = true) String sitePassword,
            @RequestParam(value = "realName", required = true) String realName) {

    在我的controller里面的我的Value = "adminId",就是因为这个问题啦,所以我只要改成Value = “id”,所有的事情就OK啦。

    原因:这是因为前台form表单中的某些参数 和 后台接受的参数类型不一致导致的。即参数名称相同,但是类型不一致。spring mvc在绑定参数的时候出现异常,所以返回400错误。但是坑爹的地方在于,这个异常会被spring mvc吃掉,不会显示在控制台中。

    解决办法:检查form表单中的参数和后台的参数对应,看是否有参数名相同但是类型不一致的情况。或者把当前日志设为debug 级别,然后在日志中即可看到spring 抛出的异常信息,即可发现哪个参数出现了错误。

    2.SpringMVC form 表单提交报400错误

    错误代码:
    HTTP Status 400 -
    type Status report
    message
    description The request sent by the client was syntactically incorrect.
    Apache Tomcat/7.0.47

    原因:

    400 请求出错 
    由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。
    在 SpringMVC 中的 Action 中处理前台 ajax 请求传过来的 json 数据直接转成对应的实体类时出错:
    400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。

    解决办法:

    检查实体类的 javabean 里边的类型是否和 springmvc form 的 form 表单名是否一致。
    我的错误原因是两个关联的实体类导致在 form 表单中 name 名称不一致:
    Employee.java 

     

      不断更新中。。。

    转载于:https://www.cnblogs.com/dadonggg/p/7803625.html

    展开全文
  • 最近部署项目的时候,由于MIS配置的是Tomcat 7.0.78的服务端,导致Web应用不正常,报HTTP 400错误(Chrome无异常、IE报错)。问题原因初步判断为7.078版本的服务端接收请求不会对符号进行转义,Chrome不异常的原因...
  • tomcat json 400错误

    2019-04-17 10:07:48
    127.0.0.1******.jsp?...我发了个这样的请求,但是却报400.但是在别人哪里却能正常运行。 搜索一下,发现是tomcat 配置问题 1 打开tomcat 配置文件 2 在最后加上或者修改这样的配置 tomcat.util.ht...
  • tomcat400错误

    千次阅读 2011-09-26 15:11:00
    转载自 分享 4xx-客户端错误 发生错误,客户端似乎有问题。...400-错误的请求。 401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS
  • tomcat自定义400错误页面

    千次阅读 2020-05-19 14:22:34
    原文链接:https://aspiresoftware.in/blog/catalinatomcat-custom-error-report-valve-to-handle-errors-exceptions/  通过在server.xml文件中 增加上面代码 重启tomcat 400页面如下 自定义 400 错误页面方法 1....
  • 错误:使用Nginx的反向代理访问tomcat400错误, 下图是nacos-server服务的报错日志。 upstream配置: upstream nacos_cluster{ server 127.0.0.1:8848; server 127.0.0.1:8858; server 127.0.0.1:8868; }...
  • Tomcat 配置错误界面

    2019-02-22 17:04:00
    Tomcat发生错误时跳转到错误页面 注意 :5.0下操作需要删除掉注释语句,不然报错,原因未知 一、修改 tomcat 的配置文件 修改 tomcat 的配置文件,当页面发生...-- 400错误 --> <error-page> <err...
  • spring boot 项目 get传入的参数是 json数组的时候 会报400 原因:是因为tomcat的版本太高 https://blog.csdn.net/fxz1535567862/article/details/88224242 我们项目中的解决办法是将那个 json数组转义 一下 ...
  • 最近部署项目的时候,由于MIS配置的是Tomcat 8.5的服务端,导致Web应用不正常,报HTTP 400错误(Chrome无异常、IE报错)。问题原因初步判断为8.5版本的服务端接收请求不会对符号进行转义,Chrome不异常的原因或许是...
  • TOMCAT 修改错误页404,400,500 的设置

    千次阅读 2019-08-08 16:35:07
    如果只想修改tomcat的,就打开root目录下conf的web.xml 如果是运行的某个项目的,就打开webapp下的那个项目的web-inf文件夹下的web.xml 在/web-app上加如下内容 <error-page> <error-code>400</...
  • 项目将tomcat从8.5.14升级到8.5.34以后,突然所有请求都变成了400错误 (PS:本来是不知道升级了tomcat,找到问题以后才知道tomcat被升级了) 本地调试没发现问题,使用Charles模拟测试环境,也没有问题,发布到测试...
  • 问题原因:controller 中使用了 @RequestParam(value="startdate") 如果没有这个字段,则会报错,解决方法是 @RequestParam(value="startdate", required=false) ... 
  • tomcat设置错误页面

    千次阅读 2018-08-27 13:32:23
    当我们访问tomcat的一个不存在的页面,返回错误信息如下: 这样的界面直接暴露给用户并不友好,有时候还不安全,因此一般需要修改默认的错误页。 vim /$TOMCAT_HOME/conf/web.xml 在文件末尾,&lt;/web-app...
  • 表单/json int 字段 写成string、 @RequestMapping(value = "/typeError",produces = "application/json;charset=utf-8") public String typeError(@RequestBody String str){ JSONObject obj = JSONOb...
  • tomcat报了400错误,查了下原因。 错误原因:url中參数部分包括/,默认tomcat是不支持url參数包括: /(%2F),\(%5C)。 解析方法:能够通过加入配置Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true ...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 357
精华内容 142
关键字:

tomcat400错误