Spring кириллица в аргументах get запросов

230
27 февраля 2019, 02:40

Есть проект, к которому подключен Spring 3.2. через web.xml

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextClass</param-name>
        <param-value>
    org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            ru.web.spring.api.config.ApiConfiguration
        </param-value>
    </context-param>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextClass</param-name>
            <param-value>       org.springframework.web.context.support.AnnotationConfigWebApplicationContext
            </param-value>
        </init-param>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                ru.web.spring.api.config.ApiDispathConfiguration
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

Так же есть контроллер

@Controller
@RequestMapping(value = "/api/rabotodatel")
public class RabotodatelController
{
@RequestMapping(value = "find_founder", method = RequestMethod.GET)
    public void getУчредители(@RequestParam(value = "fam", required = false) String fam,
            @RequestParam(value = "ima", required = false) String ima,
            @RequestParam(value = "otch", required = false) String otch,
            @RequestParam(value = "bdate", required = false) String bdate,
            @RequestParam(value = "snils", required = false) String snils,
            @RequestParam(value = "inn", required = false) String inn,
            HttpServletResponse response,
            HttpServletRequest request)
    {
// обработка
}
}

Теперь суть вопроса. При поиске в строку запроса надо вводить аргументы и они будут состоять из символов кириллицы. Когда данные приходят, то вместо, к примеру, фамилии получаю какую-то не читаемую ерунду.

Первое что пришло в голову, настроить кодировку "CharacterEncodingFilter", его я прописал в web.xml, следующим образом:

<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>/services/*</url-pattern>
</filter-mapping>

Результатов это не дало, вообще никаких, пытался даже менять кодировку с "UTF-8", на что-то другое, без изменений.

Сам проект на smartgwt, а spring только для api. Как можно проверить работает ли "CharacterEncodingFilter"? Или может ещё есть способ получить корректно символы кириллицы?

Проверял просто забивая ссылку с аргументами в браузер, потом ещё спец прогой формировал запрос с заполнением заголовка (header) http, тоже не помогло.

READ ALSO
Выбор тестов для запуска в Jenkins

Выбор тестов для запуска в Jenkins

Есть следующая проблема: Необходимо настроить возможность в билде запускать тесты по одному/выбрав несколько конкретных

220
Почему возникает исключение OutOfMemoryError?

Почему возникает исключение OutOfMemoryError?

Работает пока GC не удалит объект, на который есть только "мягкая" (monkey) ссылка

202
Не сколлится меню

Не сколлится меню

Колллеги, делаю сайтПочему-то не скроллится меню в мобильной версии от 320 до 425 - как буд-то выставлена где-то захардкоженная высота

221