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"是你应该添加的。。。