STRUTS POST亂碼 GET正常

daocha 2010-10-30 09:42:44
很奇怪,我WEB端用的是UTF-8 頁面也是UTF-8 數據庫也是UTF-8 現在沒操作數據庫

我傳一個文件上去到import.do 在web端解析后 將結果輸出到JSP上面去, JSP上面顯示是正常的,不亂碼,但是把這個表單再次提交到importSubmit.do , 表單用的是POST提交的 到web端輸出后輸出發現是亂碼 我改用GET提交就不是亂碼,這是怎麼回事呢。平常看人家都是說GET亂碼 POST正常

我用了過濾器 全部加了

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

還是沒用,暈了
...全文
342 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavPer 2010-11-08
  • 打赏
  • 举报
回复
post乱码过滤器是100%可以搞定的吧!
孤独剑客 2010-11-08
  • 打赏
  • 举报
回复
我知道, 你这样做!

在设置的时候这样:
errorMsg = URLEncoder.encode(msg, "utf-8");
在取的时候, 这样:
this.errorMsg = URLDecoder.decode(errorMsg, "utf-8");
futrueing 2010-11-08
  • 打赏
  • 举报
回复
写配置了没有,经常有人写过滤器却忘记写配置了~
daocha 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 shadow55 的回复:]

有这样扯淡的结果?一般都是Get出问题所以用post的啊
[/Quote]
是啊 不扯淡我也不會過來發了啊 用POST能夠解決亂碼的帖子到處都是 我也知道 而且說用過濾器的也搜出大把呢。。
joyce_wung 2010-11-03
  • 打赏
  • 举报
回复
表单提交的么 ?? 表单提交出现乱码确实比较少的. ...看下是不是request和response设置的编码是否正确吧.
shadow55 2010-11-02
  • 打赏
  • 举报
回复
有这样扯淡的结果?一般都是Get出问题所以用post的啊
futrueing 2010-11-02
  • 打赏
  • 举报
回复
你的过滤器做配置了没有?没配置也是没用的!
notlogin 2010-11-02
  • 打赏
  • 举报
回复
你是用URL传递值的?还是submit表单?
yumyy 2010-11-02
  • 打赏
  • 举报
回复
试下不用过滤器还是这样的结果不?
daocha 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 blackstreet 的回复:]

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
tomcat 的server.xml, 这里设置下,试试
[/Quote]
一早設置過的
daocha 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 futrueing 的回复:]

你的过滤器做配置了没有?没配置也是没用的!
[/Quote]
我貌似没那么弱
daocha 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 notlogin 的回复:]

你是用URL传递值的?还是submit表单?
[/Quote]
表单 method="GET" 然后直接submit
stl0 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 daocha 的回复:]
這東西我知道能解決,我現在就是用GET解決的 不過還是想知道為什麼POST不可以,而且我所有編碼都是UTF-8的 我的文件可能還有big5的,並不只是GBK GB2312, struts之前都是用AJAX傳的,那時候碰到亂碼都是因為用了GET 應該POST就不會亂碼了 , 可這次直接submit 沒用AJAX,結果卻恰恰相反了
[/Quote]

GET方式是QUERY_STRING方式来传递, 也就是把参数链接在URL后面,这种方式如果有中文参数,在action中就必须要做转码才可以得到正常值

而POST是把参数按照stdin(标准输入输出)来传递,如果你本来的参数已经是uft-8编码,在action中就没有必要再转一次码了。

不知道我说明白没有
daocha 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 stl0 的回复:]

以前我用js GET提交的时候,也会产生乱码,

最后尝试在action中转码才解决,LZ可以尝试下
Java code
userName = new String(request.getParameter("user_nm").getBytes("ISO-8859-1"), "utf-8");
[/Quote]
這東西我知道能解決,我現在就是用GET解決的 不過還是想知道為什麼POST不可以,而且我所有編碼都是UTF-8的 我的文件可能還有big5的,並不只是GBK GB2312, struts之前都是用AJAX傳的,那時候碰到亂碼都是因為用了GET 應該POST就不會亂碼了 , 可這次直接submit 沒用AJAX,結果卻恰恰相反了
stl0 2010-11-01
  • 打赏
  • 举报
回复
以前我用js GET提交的时候,也会产生乱码,

最后尝试在action中转码才解决,LZ可以尝试下
userName = new String(request.getParameter("user_nm").getBytes("ISO-8859-1"), "utf-8");
nicholasbobo 2010-11-01
  • 打赏
  • 举报
回复
遇到问题,自己设断点测呗,看是哪一步出现的问题,再根据情况作修改,都是这么改出来的,我怎么发现CSDN上很多都是一碰到问题,不管自己能不能解决,都跑来先问了再说
daocha 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhuchao_ko 的回复:]

引用 4 楼 daocha 的回复:
引用 1 楼 ghsau 的回复:

没怎么明白你的意思,你第一次提交,显示正常,但是第二次提交就不正常了,还是你一个表单提交了两次,低一次正常,第二次不正常啊!

不是 第一次是上傳文件 然後從服務端把內容顯示出來了,生成一個全新的表單,然後再客戶端看到顯示的內容后做新的提交,然後使用POST就亂碼了

不是同一個表單提交兩次


第一……
[/Quote]

其實就是把文件傳上服務器了,我讀出來裡面的內容 然後把對象放在list裡面,在頁面上輸出來,這不就得到了第二個頁面嗎,把這些內容對應一個個放進相應的表單項中,第二個頁面的作用是用戶確認是否是自己上傳的文件內容,然後用戶確認無誤就提交到第三個頁面去

PS:因為文件編碼各不相同,在上傳後讀取文件的過程中,根據文件編碼的不同大致猜測了源文件是什麼編碼,然後以這種編碼方式讀出來,再保存成UTF-8字符集的文件,為什麼要多保存一次?原因1:我把原始上傳的文件內容進行了刪減,原因2:因為我用到另外一個包,讀文件的時候是按照指定格式讀,所以先把文件格式化內容和字符集後方便讀入。
好了,上傳的文件經過處理保存成UTF-8字符集的新文件了,然後以UTF-8讀取這個新文件,把內容按照我之前的方式輸出到頁面中去,亂碼的情況忽略掉,因為我要保證輸出到頁面,用戶看到的是無亂碼的他們才會去進行下一步提交,所以我的問題發生在第二個頁面中中文能夠正常顯示而無亂碼的前提下,在此頁面的pageEncoding 和 charset 全部都是UTF-8
blackstreet 2010-11-01
  • 打赏
  • 举报
回复
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
tomcat 的server.xml, 这里设置下,试试
daocha 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 stl0 的回复:]

引用 10 楼 daocha 的回复:
這東西我知道能解決,我現在就是用GET解決的 不過還是想知道為什麼POST不可以,而且我所有編碼都是UTF-8的 我的文件可能還有big5的,並不只是GBK GB2312, struts之前都是用AJAX傳的,那時候碰到亂碼都是因為用了GET 應該POST就不會亂碼了 , 可這次直接submit 沒用AJAX,結果卻恰恰相反了


GET方式是QU……
[/Quote]
但問題結果恰恰相反啊 GET反而不用轉碼 而POST卻要轉碼
  • 打赏
  • 举报
回复
不知道了,不应该出这样的问题啊,想不明白!
可能是这样的,你第一次是post请求,然后经过过滤器,把它转成了U8的编码,然后你已经把response设置成U8的编码了,但是你第二次又是post请求,它又从U8转成了U8,可能这个过程中出现了什么错误,而用get请求时,request.setCharacterEncoding("utf-8");,你这条语句是不起作用的,反而好使了!
加载更多回复(5)
一. Java基础 5 (一). Java运行环境 5 1.eclipse的安装 5 2.jdk的安装 5 3.配置环境变量 5 (二).java语言基础 6 1.标识符 6 2. 基本数据类型 6 (三).面向对象 6 1.类和对象 6 2.类的声明 7 3.成员变量的声明 8 4成员方法的声明 8 5.创建对象 9 6.对象的使用 9 7.对象的初始化 10 8.类的封装 11 9.实例成员和类成员 13 (四).类的继承 14 1.创建子类 14 2.this引用、super引用 16 3.最终类和抽象类 18 (五).类的多态性 18 1. 方法的重载 18 2. 方法的覆盖 18 (六).接口 20 1. 定义接口 20 2. 实现接口 21 3. 内部类 23 (七).集合 30 1.Map集合 30 2. ArrayList集合 32 3. LinkedList集合 33 (八).异常处理 34 1. 异常类的产生、捕获与处理 34 2. 抛出异常 36 二. Swing程序设计 38 (一) Swing概述 38 1. 布局管理器 39 2. 流布局管理器 39 3. 边界布局管理器 41 4. 网格布局管理器 42 5. 盒式布局管理器 43 (二) 面板及组件 45 1. JPanel面板 45 2. 事件监听 48 (三) I/O输入输出 63 1. 流及输入输出流概述 63 2. File类 64 3. 带缓存的输入输出流 72 4. 序列化 76 (四) 多线程 80 1. 概念与原理 80 2. 两种实现方式 81 3. 生命周期及状态转换 84 4. 线程调度 85 5. 线程同步 92 三. Jsp 101 (一) myeclipse上配置Tomcat服务器 101 (二) Jsp+servlet+bean版HelloWorld概览 105 (三) Jsp基本页面标签 116 1. <@ page %>标签 116 2. contentType属性 118 3. pageEncoding属性 118 (四) form表单中的action,post和get 119 1. form中的action属性 119 2. from中的get和post 120 (五) jsp内置对象(request,response.session,out) 121 1. request和response 121 2. session 122 (六) Servlet的 xml配置 126 1. xml的文件结构 127 2. 通过web.xml配置文件访问servlet的流程 129 (七) servlet里面的跳转和传参数的方法 130 1. 跳转 130 2. 传参数 131 (八) jsp中文乱码问题 131 1. JSP页面乱码 132 2. 表单提交中文时出现乱码 134 3. 关于jsp在MyEclipse中打开的乱码问题 138 4. 关于html页面在eclipse中打开出现乱码情况 139 5. JSP页面通过URL传递中文参数的乱码问题 139 四、 Struts2 140 (一) 基于struts2的web应用的开发步骤 140 1. MVC设计模式() 140 2. 基于struts的web应用的开发步骤 141 3. 如何写自定义action,实体,以及业务类 141 (二) Struts2 153 1. struts2的拦截器定义以及使用 153 2. struts标签 160 3. Struts 2 标签库说明及使用 160 4. set 描述 169 5. text 描述 170 6. property 描述 170 7. Struts的异常处理 171 8. Struts的上传与下载 178 五、 Hibernate 192 (一) 前言 192 (二) 持久化层 193 (三) ORM介绍 193 (四) Hibernate 核心接口 194 1. Session接口 194 2. SessionFactory接口 194 3. Configuration类 194 4. Transaction接口 195 5. Query和Criteria接口 195 (五) Hibernate的安装和配置 195 1. 安装Hibernate 195 2. 映射文件 197 3. Hibernate配置 200 (六) 通过Session完成基本操作 204 1. 保存数据(源代码:hibernate_0100) 204 2. 删除数据(源代码:hibernate_0200) 205 3. 更新数据(源代码:hibernate_0300) 207 4. 加载数据(源代码:hibernate_0400) 208 5. 缓存 211 6. 对象映射配置 212 7. 元素介绍 212 8. 元素介绍 212 9. 元素介绍 213 10. 元素介绍 214 (七) ID的生成策略 215 1. increment 216 2. identity 216 3. sequence 216 4. hilo 217 5. seqhilo 217 6. uuid 217 7. guid 217 8. native 217 9. assigned 217 10. select 217 11. foreign 218 (八) 复合自然主键实例(源代码hibernate_0500) 218 (九) Hibernate的类型 224 1. Java基本值类型的Hibernate映射 224 2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4. 关联关系映射 225 5. Hibernate的事务与并发 238 (十) 数据库 240 1. 数据库的基本概念 240 2. 数据模型 240 3. 关系模型 241 数据流图(Data Flow Diagram,DFD) 241 E-R图 241 4. 关系规范化 242 5. Mysql 的安装 243 6. Transact-SQL 256 7. 物理结构分为三类 257 8. 数据完整性 258 9. 数据库备份: .bak 258 七. Spring 3.X 259 (一) IoC 261 1. 控制反转(IoC) 261 2. 利用Spring IoC方式 编写 263 3. 设置Bean作用域 265 4. 为Bean配置集合(List,Set,Map) 266 5. 调用构造方法创建Bean 271 6. 指定Bean引用与自动装配 276 (二) AOP 278 1. AOP简介 278 (三) Spring 3.X 新特性(JavaConfig,SpEL)简介 285 1. JavaConfig 285 2. SpEL 287

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧