日期:2014-05-20  浏览次数:20639 次

servelt传值乱码
servlet中接收
Java code

String text=request.getParameter("search");
String value=request.getParameter("searcher");


经检测这个两个值和我输入的是一样的,然后传入jsp文件中
Java code

<%
request.setCharacterEncoding("utf-8");
int pageCount=(Integer)request.getAttribute("pageCount");
int pageNow=(Integer)request.getAttribute("pageNow");
String text=(String)request.getAttribute("text");
String value=(String)request.getAttribute("value");
%>


接收到的text和value的值和servelet中的一样,是正确的,然后将这一个值传入另一个servelet中
HTML code

<a href="/HRM/pageServlet?actionCode=jump&page=<%=pageNow+1%>&text=<%=text%>&value=<%=value%>">下一页</a>


另一个servelet中接收
Java code

request.setCharacterEncoding("utf-8");
String text=request.getParameter("text");
String value=request.getParameter("value");


这时接收到的值就是乱码了,如果开始的text是英文没有问题,是中文的话前边都没问题,到了最后这里就成了乱码,该怎么解决???????

------解决方案--------------------
new String(原String.getBytes,"某一个字符集");

常识一下转码.....使用String类,带有字符集的构造方法.
------解决方案--------------------
然后将这一个值传入另一个servelet中
如果从一个servlet传递值到另一个servlet的话
需要把response转码 跟request转码一样、
虽然这样转码很麻烦。。。
设置一个filter比较好些省事。
------解决方案--------------------
我感觉是前台页面和后台设置的编码格式的问题,应该设置为统一的一中,较常用的应该是UTF-8吧,这样,可以大大的减少乱码出现的情况。。。
------解决方案--------------------
<a href="/HRM/pageServlet?actionCode=jump&page=<%=pageNow+1%>&text=<%=URLEncoder.encode(text, "UTF-8")%>&value=<%=URLEncoder.encode("value", "UTF-8")%>">下一页</a>
------解决方案--------------------
要么通过字符串字符转换,要么就写个过滤器。
------解决方案--------------------
先看看你jsp页面是不是utf-8的格式,如果是在另一个serlvet中写
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

String text=request.getParameter("text");
String value=request.getParameter("value");
试试行不行
------解决方案--------------------
写过滤器(网上有很多)
或设置jboss或tomcat编码

试一试看能否通过

------解决方案--------------------
统一编码格式,如果还不行。
写一个过滤器,一般的乱码问题都可以解决
------解决方案--------------------
如果用的是tomcat的话,配置改一下,server.xml改为:
<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000" 
redirectPort="8443" URIEncoding="UTF-8"/>
上面的 URIEncoding="UTF-8"是你应该添加的。。。