zoukankan      html  css  js  c++  java
  • PathVariable传过来的中文乱码是怎么回事

    今天在写一个spring mvc程序,由于客户原来设计的原因,不能传id过来,只能传名称,结果发现收到的数据是乱码。

    百度之后,找到别人的解决方案,试了下没问题,转载一下。使用的web服务器是Tomcat。

    Spring MVC从3.0开始支持REST

    Spring MVC从3.0开始支持REST,主要是通过@PathVariable来处理请求参数和路径的映射.假设在Controller中定义了如下的请求映射
    @RequestMapping(value = "/account/{key}")
    如果请求路径里有中文(如/account/全聚德),可能会有乱码问题,通过设置服务器的编码可以解决,对于Tomcat,只需要修改conf/server.xml文件,添加URIEncoding="UTF-8"即可,如:
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>
    
    (以下部分没有涉及,所以没有试验。)
    如果路径中有点"."(如/account/abc.def.ghi),Spring会当作文件扩展名的点来处理,这时Controller中就只能取到最后一个点之前的数据,即abc.def,解决办法是修改请求映射的定义为以下形式:
    @RequestMapping(value = "/account/{keyword:.*}")
  • 相关阅读:
    期望DP入门(p1850换教室)
    P2858 [USACO06FEB]奶牛零食Treats for the Cows
    2019 CCF夏令营 day 2
    2019 CCF夏令营 day 1
    双向存图解题
    P3952 时间复杂度
    P1347 排序(拓扑排序)
    清理Docker垃圾
    k8s中command、args和dockerfile中entrypoint、cmd之间的作用
    kubectl命令自动补全
  • 原文地址:https://www.cnblogs.com/qianzf/p/11017530.html
Copyright © 2011-2022 走看看