CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  框架、开源

Struts 中文乱码问题 以及 URL暴露表单数据和SessionID问题,急~~~

楼主randb(从大二下学期开始不再迷茫!!狂学编程!!)2005-12-11 12:57:25 在 Java / 框架、开源 提问

1.用Struts开发JSP,各JSP文件都用UTF-8编码,同时设置EncodingFilter编码过滤器,编码同样采用UTF-8,可是运行时只有HTML里面的静态文本是中文,表单里的数据一经提交就成了乱码,请问要怎么解决呢?  
   
  2.用Struts-Form提交数据时,会在URL里面看到表单数据,有时也会现出SessionId,请问有没有什么办法让它们不可见呢?  
   
  谢谢了!! 问题点数:20、回复次数:17Top

1 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-11 13:46:46 得分 0

问题三:用Struts开发JSP时,不太想用Struts自带的标签库,因为感觉它的功能没有JSTL强大,我用JSTL可不可以啊,这样会不会不像Strtus的开发模式?Top

2 楼mingr6370(丑男)回复于 2005-12-11 19:45:15 得分 0

1.可以设成gb2312,如果对存取数据,需要转码  
   
  2.form中method="post"  
   
  3.用JSTL应该可以吧,没用过!我一般都用struts标签Top

3 楼rnwoxn(初行者)回复于 2005-12-11 20:27:26 得分 0

把JSTL的lib和tld文件放在WEB-INF里,Top

4 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-11 21:55:25 得分 0

我的编码GB2312和UTF-8我都试过了,可还是不行啊,表单提交总是乱码  
   
  还有,我感觉STRUTS自带的标签库功能好像没有JSTL强大啊,各位怎么看的。。。Top

5 楼Dantee(奋斗中。。。)回复于 2005-12-12 00:29:18 得分 5

是不是html和jsp混用的啊,统一成jsp用struts的html:form标签提交试试  
   
  还有您的第二个问题,就像在问,我觉得笔记本硬盘没有台式机的强大啊,可以给我的移动硬盘换成台式机硬盘吗?当然可以,只要您不嫌用得不方便和把一个好好的东西弄得四不像了,struts标签的确有不好,但是真的需要所谓的“强大”吗?Top

6 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-12 13:10:53 得分 0

TO   楼上,  
  呵呵,我主要是想用纯粹的STRUTS标签来处理页面的显示逻辑,  
  但是感觉有时办不到,  
  所以会觉得STRUTS的标签库不够强大。。。Top

7 楼AreamArgentateOfWing(梦幻银翼)回复于 2005-12-12 13:22:34 得分 0

 
  我的编码GB2312和UTF-8我都试过了,可还是不行啊,表单提交总是乱码  
   
  还有,我感觉STRUTS自带的标签库功能好像没有JSTL强大啊,各位怎么看的。。。  
   
  转多了Top

8 楼hw_betty(hw_betty)回复于 2005-12-12 15:17:45 得分 5

页面上用GB2312,web.xml中配置的filter重用UTF-8.你是用了支持国际化的properties文件,显示页面中文信息吧?那把这个文件转码成ascii就行了。用jdk中的native2ascii.exe转Top

9 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-12 22:39:00 得分 0

TO   楼上,  
  我没有用属性文件来显示页面上的中文,呵呵  
   
  改成GB2312吗,好的,我试一下Top

10 楼mingr6370(丑男)回复于 2005-12-13 21:27:55 得分 5

如果没有用到国际化文件,在web.xml去掉,EncodingFilter也去掉  
   
  JSP页面设为gb2312,formbean取值不可能是乱码!我天天用的,再不行把源码贴上了Top

11 楼qczl1224(倾情一世『qczl.ys168.com』)回复于 2005-12-14 11:22:49 得分 5

我的编码GB2312和UTF-8我都试过了,可还是不行啊,表单提交总是乱码  
   
  还有,我感觉STRUTS自带的标签库功能好像没有JSTL强大啊,各位怎么看的。。。  
   
   
  无语。。。转码都不会会懂那个标签强大与否????????不会用就不要乱发评论。。。。。。。。。。。  
   
  做一个类继承ActionServlet,重写process方法。  
   
  public   class   Test  
   
   
   
  ActionServlet   extends   ActionServlet   {  
   
  protected   void   process(HttpServletRequest   request,   HttpServletResponse   response)   throws   IOException,   ServletException  
  {  
  try  
  {    
  request.setCharacterEncoding("GB2312");  
  System.out.println("COPActionServlet+GB2312");  
  }   catch(Exception   e)  
  {  
  e.printStackTrace();  
  System.out.println("error   in   setCharacterEncoding!   COPActionServlet+GB2312");  
  }  
  super.process(request,   response);  
  }  
  }  
   
  wel.xml  
  ...   ...  
  <servlet>  
  <servlet-name>action</servlet-name>  
  <servlet-class>TestActionServlet</servlet-class>  
  <init-param>  
  <param-name>config</param-name>  
  <param-value>WEB-INF/struts-config.xml</param-value>  
  </init-param>  
  ...   ....  
  Top

12 楼cdjjh(Jerry)回复于 2005-12-14 11:26:01 得分 0

我们全部同一使用iso8859-1字符集,解决了中文的问题,包括生僻汉字都没有问题Top

13 楼qczl1224(倾情一世『qczl.ys168.com』)回复于 2005-12-14 11:26:56 得分 0

上面注意页面的编码全换成   GB2312,,,  
   
  如果页面国际话仍然乱码。。。用JAVA下的native2ascii.exe把资源文件处理一下!!!!!!!!Top

14 楼qczl1224(倾情一世『qczl.ys168.com』)回复于 2005-12-14 11:38:43 得分 0

2.用Struts-Form提交数据时,会在URL里面看到表单数据,有时也会现出SessionId,请问有没有什么办法让它们不可见呢?  
   
  你的Form连接ACTION设置怎么设置的??   看样子一定是连基本的Struts框架都不是很了解!!汗。。。   。。。  
  还有HTML和JSP标签混用完全没有问题,,出了问题是因为你们对Struts框架不懂原因!!!!!!!!Top

15 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-14 13:44:02 得分 0

谢谢各位的帮助  
   
  1.关于编码:  
  为了既然在页面上显示中文,又能在提交表单后显示中文,我尝试了各位编码类型(主要是ISO8859-1,UTF-8,GB2312)和编码策略,  
  最后用EncodingFilter字符编码过滤器彻底解决了中文乱码的问题,并发现以下规律(至少在我机上是这样的情况,我试了很多次,如果大家觉得不对可以批我)  
  (1)为了在浏览器中运行时能看到正常的中文,并能以中文正常提交表单,编码只能用UTF-8,  
  <%@   page   contentType="text/html;charset=UTF-8"   %>  
  ISO-8859-1,GB2312均出现乱码  
  (2)为了在JBUILDER   2006   里面预览时能看到正常的中文,须在<HEAD>标记里面写上:  
      <meta   content="text/html;charset=UTF-8"   http-equiv="content-Type">  
  ISO-8859-1,GB2312均出现乱码.不知道其它的编辑器是怎样的  
  (3)用EncodingFilter字符编码过滤器对各个页面请求进行字符统一编码时,只能用GB2312,  
  ISO-8859-1,GB2312均出现乱码  
   
  以上是我的结论,已经过多次试验。。。  
   
  2.关于URL暴露参数值:  
  这个我承认是我把POST写成了GET,很抱歉  
   
  3.关地JSTL和STRUTS标签混用:  
  其实我的意思是在STRUTS里面用JSTL标签会不会让页面风格不像STRUTS,  
  不过那句话还是要说,JSTL的确比STRUTS的标签更强大,JSTL有的功能STRUTS标签没有。。。。  
   
  各位继续发表看法吧。。。Top

16 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-15 07:22:31 得分 0

另外说明一下我的测试环境:  
  WinXP   SP2   CHS  
  TOMCAT   5.5.9  
  JDK   1.5  
  JBUILDER   2006  
  STRUTS   1.2Top

17 楼randb(从大二下学期开始不再迷茫!!狂学编程!!)回复于 2005-12-15 07:24:49 得分 0

写错了一点。。  
  (3)用EncodingFilter字符编码过滤器对各个页面请求进行字符统一编码时,只能用GB2312,  
  ISO-8859-1,UTF-8均出现乱码Top

相关问题

  • Struts表单提交出现乱码?
  • struts表单的中文乱码问题
  • Struts 中文乱码问题 以及 URL暴露表单数据和SessionID问题,急~~~
  • 求教 JSP页面乱码问题 struts表单繁体中文乱码 数字和英文正确
  • struts表单验证
  • struts国际化:浏览器表单提交中文,链接提交中文,全是乱码。怎么办啊?
  • 表单获取数据乱码问题
  • struts 表单验证问题
  • Struts表单验证问题!
  • (JSP)Resin表单提交中的汉字显示乱码问题?

关键词

  • 编码
  • 乱码
  • 页面
  • jstl
  • struts
  • 中文
  • 字符
  • 数据
  • 文件
  • 硬盘

得分解答快速导航

  • 帖主:randb
  • Dantee
  • hw_betty
  • mingr6370
  • qczl1224

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo