免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1097 | 回复: 0
打印 上一主题 下一主题

displaytag 使用之分页链接问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-26 10:38 |只看该作者 |倒序浏览
我在项目开发中,使用displaytag的过程仲发现,分页地址冗长,最终导致URL无法访问!就像excelname=%D7%A8%D2%B5%C3%FB%B3%D7%A8%D2%B5%C3%FB%B3%D7%A8%D2%B5%C3%FB%B3%D7%A8%D2%B5%C3%FB%B3%
问题的根源:
pageEncoding="GBK" contentType="text/html;charset=GBK"

只在显示汉字时有用,而且这2种写法的作用在理论上应该时一致的,但是由于各个软件厂商对Web标准都按照自己的理解进行了修改,所以,常常这2种写法作用就不一致了,使我们在开发Web程序时备感混乱。如果你想了解详情,请查看《网站重构》一书。
这样我们提交的汉字被认为是ISO-8859-1的编码,所以在程序中接收时显示乱码,如果使用过滤器,在过滤器中调用request.setCharacterEncoding("GBK")的话,那么Post上来的汉字将被认为是GBK编码,而Tomcat5对于Get请求上来的编码并不根据过滤器的设定辨认编码方式,默认的依然是ISO-8859-1,Tomcat5中处理Get请求的源代码如下:
上面的代码中,enc代表Tomcat5中server.xml中Connector部分的URIEnocodeing项设定的值,可以看出,如果没有设定URIEncoding项的话,那么Tomcat5也并没有使用默认的ISO-8859-1编码,而是一段fast conversion,所以,即使你的页面使用默认的编码方式进行编码,然后使用ISO-8859-1进行解码,得到的结果也不对,这可能是Tomcat5的一个Bug。如果想绕过这个Bug,那么只有在server.xml的Connector部分设定URIEncoding的值,根据编码方式指定自己的值,在我的程序中我使用的是GBK,所以我修改后的部分如下:
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
port="80"
redirectPort="8443"
enableLookups="false"
minSpareThreads="25"
maxSpareThreads="75"
maxThreads="150"
maxPostSize="0"
URIEncoding="GBK">


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63956/showart_706641.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP