码迷,mamicode.com
首页 > 其他好文 > 详细

从有码到无码

时间:2014-09-09 18:16:59      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   for   数据   2014   

 

bubuko.com,布布扣

想歪的直觉面壁去,不想见到你。大师说了:心中无码,自然高清。

言归正传。

环境:

  1. tomcat7,jdk6
  2. spring+springmvc+mybatis
  3. maven

问题:有CharacterEncodingFilter,controller处理get请求乱码。

controller:


@Controller
public class SearchController {

    @RequestMapping(value = "/s/{k}.html", method = RequestMethod.GET)
    public String search(@ModelAttribute("k") @PathVariable String k) {
        System.out.println("k=" + k);
        return "search/search";
    }
}

页面获取:


<div class="form-group">
    <input type="text" class="form-control" style="width: 450px;" name="k" id="k"
        placeholder="客官想搜点什么?番号~哈希码~" value="${k }"/>
</div>

bubuko.com,布布扣 bubuko.com,布布扣 bubuko.com,布布扣

网上查了下,比较靠谱的解决方案是修改tomcat中的server.xml配置,在connector节点里增加配置:useBodyEncodingForURI="true" URIEncoding="UTF-8"


    <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" 
        useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

URIEncoding和useBodyEncodingForURI区别是:

  • URIEncoding是对所有GET方式的请求的数据进行统一的重新编码,
  • 而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码

按照这个方法修改之后:

bubuko.com,布布扣 bubuko.com,布布扣

OK,没有问题!于是我找jsp空间商修改配置,这货是这么说的:

bubuko.com,布布扣

bubuko.com,布布扣

身为一个有钱的技术人员,怎能被钱财这种铜臭味困扰!

于是我自己搜集资料,重新改了下代码,在controller里边重编码:

controller:


@Controller
public class SearchController {

    @RequestMapping(value = "/s/{k}.html", method = RequestMethod.GET)
    public String search( @PathVariable String k, HttpServletRequest request) {
        String key = EncodingUtil.encodeStr(k);
        request.setAttribute("key", key);
        return "search/search";
    }
}

EncodingUtil:


public class EncodingUtil {
    
    public static String encodeStr(String str) {
        try {
            return new String(str.getBytes("ISO-8859-1"), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return null;
        }
    }
}

好了问题解决了。

bubuko.com,布布扣

可是这明显不是那货说的无敌运行的方法,哪个大神有更好的方法呢?欢迎赐教!!!

从有码到无码

标签:des   style   blog   http   io   ar   for   数据   2014   

原文地址:http://www.cnblogs.com/yejq/p/3963001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!