你的位置:pcMing工作室 >> 资讯 >> JAVA/JSP >> struts >> 详细内容 在线投稿

解决GET方式传中文参数给Struts2 Action时的乱码问题

排行榜 收藏 打印 发给朋友 举报 来源: java2000.net   发布者:未知
热度113票  浏览383次 【共0条评论】【我要评论 时间:2010年6月22日 20:38
GET方式传中文参数给Struts2 Action时出现乱码? 如:xxxAction.action?name=王  传入ACTION后打印name属性到TOMCAT控制台显示???? 乱码  如何解决呢?
try{pcMing工作室3H!oC^){c
String str=new String("".getBytes("IOS8859-1"),"gbk");pcMing工作室dK M;SE1A0Y(b
}catch(Exception e){}
编码格式不一致
提交的两种方式,GET和POST
,QFe/f&d)}B8[ }0    1.记住超链接是GET方式提交pcMing工作室!E-M!tj"u j
    2.POST方式提交可以统一转码(这样获得的参数可以统一转码)
w9w Tc[;D0            例:request.setCharacterEncoding("UTF-8");  //如果你用的编码方式是GBK就写GBK,要写在获得参数的前面
K~JHu&A)V~T0              String name=request.getParameter("name");
4Le#S6G^G0              System.out.println(name);  //可以转过来,必须是POST提交pcMing工作室"M&C?h L0Q*~
    3.GET方式不能用统一转码
b_ vwS8K)A0            但可以这样做:
_ez.Lv$`(Jyr"X fE0              String name=request.getParameter("name");pcMing工作室 o~%D1O"SD{E
              name=new String(name.getBytes("ISO-8859-1"),"UTF-8");    //这种也叫重新赋值的方式pcMing工作室"|;fQ?.@;v
                System.out.println(name);pcMing工作室 w:z:AmH'nnj*xc
            但这样做也带来很多不便,假如你有很多request.getParameter("something");  你必须一一转码.
%IP'G+I#g NW0u0    4.GET方式还有一种配置可以在Tomcat下配置URIEncoding=UTF-8pcMing工作室!\8s_qd;ekt!H(_

6n%o'K)E'R7WXi8u0         
1.整体思想,编码方式统一(采用utf-8)pcMing工作室'r8h(Y-C b |
2页面显示中文乱码pcMing工作室o:j*e~1x Lw

Q _7y/]0X#gt{0<%page pageEncoding="utf-8"%>pcMing工作室2GH(gKg!C

x.W;O9f,L^T03传递中文参数乱码
/E7J6X H"TV0pcMing工作室A] v#oB8T]G Je5av-w
修改server.xml(解决get方式)pcMing工作室%iz+A6AFy6XD

+dXx:Wli`;j7~&C0<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000"
/y;NeGS| \J0
.veu)}E$ZLQn,L\m0    redirectPort="8443" URIEncoding="UTF-8"/>pcMing工作室@ X$^t K)W(VYb

|%C;B L7H0pcMing工作室MG4m5Pq
pcMing工作室@5P{j{ q6M"H
编写过滤器(Filter)(解决post方式)
8ok,D%w&_h)FL*mI a0pcMing工作室!wE[? DE,c/lP W
package servlets; 
O'l'@yy ` m2zH0
$m3m_g3_qSN0import java.io.IOException;
Q5D.J"Jb/G B+x#v0
?&h{-K!V!qn4H `,M {0import java.io.IOException;pcMing工作室BD q J2ua7g

1H$otz$T0import javax.servlet.Filter;pcMing工作室U1Jz0Ix
import javax.servlet.FilterChain;pcMing工作室N._8R\D@)kACC@
import javax.servlet.FilterConfig;pcMing工作室5ou,B!O AJQ
import javax.servlet.ServletException;pcMing工作室ML-l;\ E
import javax.servlet.ServletRequest;
`POL}/p'|0import javax.servlet.ServletResponse;
o$i-?-sp,[\:OxmN0pcMing工作室Dj;B'JcWh
public class EncodingFilter implements Filter {pcMing工作室.~.c|2TL"b
    public void init(FilterConfig config) throws ServletException {
GhrP;V| O?T*{6z~0    }
T2f+^D6~Tg.c2VP0
(prG*aT w zZY%V0    public void doFilter(ServletRequest request, ServletResponse response,
wB zz*U"G:~PW0        FilterChain chain) throws IOException, ServletException {
?2_$zUz+SU6k/~0        request.setCharacterEncoding("utf-8");
LgVt mx r5u0        chain.doFilter(request, response);
4W!Hzf5ea%QD:`b0    }pcMing工作室{U.[3\7i!VJ8a n d
pcMing工作室Gi"m5XC5Ok,X
    public void destroy() {
_ B#s!jm/Rb [&d~0    }pcMing工作室!o_A] _d1~;a'[/q
}pcMing工作室N W*d ]V{a/V
pcMing工作室g"A%`}E7Ha

S `.{f/b7z0在web.xml注册pcMing工作室 M0V?5SI3e

b'B@)TB-Ye#tV8[T0<filter>pcMing工作室Kx;W]+x^Lt
            <filter-name>EncodingFilter </filter-name>
2bhC/|/wV5K"K2q0            <filter-class>servlets.EncodingFilter </filter-class>pcMing工作室"b|e6jRW0nce
        </filter>pcMing工作室5_V Sx{#Gj
        <filter-mapping>
,VDE{!^%O0            <filter-name>EncodingFilter </filter-name>
)eM4~ M0OCK H%V0en0            <url-pattern>*.do </url-pattern>pcMing工作室?!jI],T/^-bOu
        </filter-mapping>pcMing工作室,\ ~|CO:}?]QTd
pcMing工作室/Z1kw*\|`

strut2可以自行转码地。pcMing工作室ei s H P:{jU BZ
在struts.xml里面加一句pcMing工作室^ywB5I E
constant name="struts.i18n.encoding" value="GBK" />pcMing工作室a.TvJO{0\
这个就ok了
在Tomcat配置文件中设置URI编码为UTF-8后,确实可以对一些中文字符进行识别,但也有些字符还是转成了"?",像中文字符"章",这是怎么回事呀?
引用 4 楼 ssqtjffcu1 的回复:
%u |_~3F-N$owa!X;C01.整体思想,编码方式统一(采用utf-8)pcMing工作室9uv;o oh)Ey#C
2页面显示中文乱码
F,f2sz bb8m@D+x0F.j0
kH+vR.xW0<%page pageEncoding="utf-8"%>pcMing工作室 tV.D\R,T-mT

6Vl@ZE [%L03传递中文参数乱码pcMing工作室6]K~6{O W[!g3j
pcMing工作室P"?QN1n.Wg
修改server.xml(解决get方式)
v xW._ m b1vwL0
l _;TY:B0<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000"
%s%\Z.o7^`,l0pcMing工作室Y N\1ht!V(@T;E n
redirectPort="8443" URIEncoding="UTF-8"/>pcMing工作室*pi D O'i!Ke|Qz']u
pcMing工作室8MJ R,[6o7~:g8B Q
pcMing工作室d0J'Nt+S(`#A
编写过滤器(Filter)(解决post方式)
SO7F6j!eX`!l0pcMing工作室$EF X| bnS2?j!u-H
package servlets;pcMing工作室1ye#UpD EPG.y

sB2ia H']#JQ#a"~0import java.io.IOException;
!_0G\4d"Yy0pcMing工作室Fwe3]&xmsi
import java.io.IOException;
?K#P b*A0
z9_J N(n2X$V0
pcMing工作室6Mr"@ E/G y/}

bw8f,v;aMCkR0这个很好了!!!!!
顶:6 踩:8
对本文中的事件或人物打分:
当前平均分:-0.62 (37次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.91 (32次打分)
【已经有30人表态】
6票
感动
1票
路过
5票
高兴
4票
难过
3票
搞笑
2票
愤怒
5票
无聊
4票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源