Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季休息服务不提供';在URL中使用某些符号触发t_Java_Spring_Rest_Spring Mvc_Tomcat7 - Fatal编程技术网

Java 春季休息服务不提供';在URL中使用某些符号触发t

Java 春季休息服务不提供';在URL中使用某些符号触发t,java,spring,rest,spring-mvc,tomcat7,Java,Spring,Rest,Spring Mvc,Tomcat7,我在java上使用rest服务。此服务包括SpringMVC模型。它工作正常,但当我在url中使用俄语字符时,我有404,而控制器中的spring方法没有运行。我用url编码传输数据 本地主机:8080/x/test 服务代码: @RequestMapping(value = "{id}/test", method = RequestMethod.GET) @ResponseBody public String getListOfResources(HttpServletRequ

我在java上使用rest服务。此服务包括SpringMVC模型。它工作正常,但当我在url中使用俄语字符时,我有404,而控制器中的spring方法没有运行。我用url编码传输数据

本地主机:8080/x/test

服务代码:

@RequestMapping(value = "{id}/test", method = RequestMethod.GET)
    @ResponseBody
    public String getListOfResources(HttpServletRequest request, HttpServletResponse httpServletResponse, @PathVariable(value = "id") String id) {

           System.out.println(test);

    }

我认为您必须查看server.xml中的配置(如果使用Tomcat)并检查编码。 Jetty默认为UTF-8,更多信息:
您还必须在web.xml中定义UTF-8,一个如下所示的过滤器:

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 

字符编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
字符编码滤波器
/*

问题出在tomcat中的文件server.xml中:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" 
           URIEncoding="UTf-8"/>


俄文字符可能对URL无效。请参阅以获取有效字符。谢谢您的回答,但它不适用于我。