问题描述
//这个是第一个jsp<c:url value= "/detail.jsp" var = "detail"><c:param name = "gname" value = "${goods.gname}"/><c:param name = "gprice" value = "${goods.gprice}"/><c:param name = "gpic" value = "${goods.gpic}"/><c:param name = "gremark" value = "${goods.gremark}"/><c:param name = "gxremark" value = "${goods.gxremark}"/><c:param name = "gdate" value = "${goods.gdate}"/><c:param name = "giscommend" value = "${goods.giscommend}"/><c:param name = "gisopen" value = "${goods.gisopen}"/><c:param name = "cid" value = "${goods.cid}"/><c:param name = "ctype" value = "${goods.category.ctype}"/></c:url><a href = "${detail}">详细</a>//这个是第二个jsp商品名:${param.gname}<br/>商品价格:${param.gprice}<br/>所属类别:${param.ctype}<br/>商品图片:<img src ="/Shopping/images/${param.gpic}"/><br/>但是在网页上却是显示的是商品名:爱国者mp3商品价格:0.01所属类别:男士休闲但是我的第二个页面的地址栏传过去的值却是这个gname=%E7%88%B1%E5%9B%BD%E8%80%85mp3&gprice=0.01&gpic=004.png&gremark=%E7%88%B1%E5%9B%BD%E8%80%85%E5%93%81%E7%89%8C&gxremark=%E5%8F%AF%E4%BB%A5%E8%BF%9E%E7%BB%AD%E5%90%AC%E6%AD%8Cn%E5%B0%8F%E6%97%B6&gdate=2013-04-17+21%3a39%3a47.743&giscommend=true&gisopen=true&cid=1&ctype=%E7%94%B7%E5%A3%AB%E4%BC%91%E9%97%B2求这个问题怎么解决啊
解决方案
因为是get 所以光加过滤器是无效的 get方式默认就是这种情况 你可以参考如下文章解决 和servlet是一回事 http://www.iteye.com/topic/1121242#2322208
解决方案二:
get... 不解释
解决方案三:
看看tomcat配置文件 confserver.xml<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding=”UTF-8”/>
解决方案四:
get请求使用request.setCharacterEncoding(code)应该是不起作用的;这种情况要对中文参数进行特殊处理:传递之间encode(这里的标签可能已经给你encode了),接收到参数之后decode(java api);如果是tomcat容器就直接修改server.xml里的编码设置;
解决方案五:
加入编码过滤器:http://bxl766.blog.163.com/blog/static/610995052012222111513216/
解决方案六:
请确保jsp文件编码也页面里面的编码格式一致还有就是看下第一个页面是不是在传递之前就已经乱码还是传递过去之后才乱码的