servlet转发到jsp乱码怎么解决
悬赏:5 发布时间:2008-06-29 提问人:qi1987 (初级程序员)
做了简单的jsp 分页 ,下一页的时候提交到servlet处理,但转发到jsp的时候总是乱码显示。
该问题已经关闭: guanbi
该问题已经关闭: guanbi
回答
做下转码处理 在
servlet中
servlet中
happyanyday (初级程序员) 2008-06-29
首先在JSP页面设置字符编码为GBK,然后在JSP中的请求对象也要设置字符编码为GBK,最后在web.xml中配置一个过滤器,在过滤器中将请求数据的字符编码设置成GBK即可。
书山墨客 (初级程序员) 2008-06-29
看一下这个帖子介绍的方法
引用
http://hi.baidu.com/mainboyy/blog/item/21fb521727eb9c044a90a713.html
congjl2002 (资深程序员) 2008-06-29
设置response、request的编码格式试一下
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
这样应该就没有什么问题呐。
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
这样应该就没有什么问题呐。
skingyang (初级程序员) 2008-06-29
http://groups.google.com/group/renyongpan/web/%E4%B8%AD%E6%96%87%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88?hl=zh_CN
解决jsp,html,servlet,xml中文问题全方案,点上面
解决jsp,html,servlet,xml中文问题全方案,点上面
mewleo (中级程序员) 2008-06-29
自己写一个过滤器,将所有的字符编码为UTF-8 就可以了.最好把页面的编码也设置成utf-8 或者统一用GBK 也可以! 祝你好运!!
然后在web.xml中添加下面的代码就可以了!
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* 字符编码过滤器,为了解决乱码问题.
* @author guanminglin
*/
public class EncodingFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException {
// throw new UnsupportedOperationException("Not supported yet.");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// throw new UnsupportedOperationException("Not supported yet.");
request.setCharacterEncoding("UTF-8");
// 传递控制到下一个过滤器
chain.doFilter(request, response);
}
public void destroy() {
// throw new UnsupportedOperationException("Not supported yet.");
}
}
然后在web.xml中添加下面的代码就可以了!
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>org.news.comm.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
gml520 (初级程序员) 2008-06-30
补充一下: 在xml 中的
需要根据自己的包来命名,org.news.comm.EncodingFilter 是我这里的包.
引用
<filter-class>org.news.comm.EncodingFilter</filter-class>
需要根据自己的包来命名,org.news.comm.EncodingFilter 是我这里的包.
gml520 (初级程序员) 2008-06-30
把servlet 上面的数据发到jsp上面去,得发一个头文件
request.setCharacterEncoding("GBK");这里必须得跟页面上的一样
request.setCharacterEncoding("GBK");这里必须得跟页面上的一样
yupeng_raul7 (初级程序员) 2008-07-03
1.首先检查你所有的页面是不是都是统一编码
2.设定一个断点调试,看是在哪各环节出现的乱码,是插入数据库还是读取数据库,还是显示到页面的。这样你就可以分辨出来乱码的出现
如果是数据库就是乱码的话,而且用的是微软的数据库的话,推荐使用jtds1.2.jar数据库连接驱动+过滤器来解决。
2.设定一个断点调试,看是在哪各环节出现的乱码,是插入数据库还是读取数据库,还是显示到页面的。这样你就可以分辨出来乱码的出现
如果是数据库就是乱码的话,而且用的是微软的数据库的话,推荐使用jtds1.2.jar数据库连接驱动+过滤器来解决。
yourgame (初级程序员) 2008-07-03
第一,确定所有页面都是统一编码,建议使用UTF-8
第二,确定从页面到servlet,servlet里接受到的不为乱码。在页面中使用URLEncoder.encode()转换下中文。也可以用JS中的encodeURIComponent方法转换
第三,从servlet到页面,在输出前使用
response.setCharacterEncoding("text/html;charset=utf-8")
OK!
east_java (初级程序员) 2008-07-04
网上查查过滤器,万事OK
csjiaju (初级程序员) 2008-07-04
写个过滤器 很简单的
shajindan (初级程序员) 2008-07-04
这个我好像回答过了,但是我今天碰到一个乱码问题
LZ描述的有点模糊,
你试试用response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");
OK!
LZ描述的有点模糊,
你试试用response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");
OK!
yupeng_raul7 (初级程序员) 2008-07-05
自定义一个servlet继承filter接口,然后在它的doFilter方法内设置 request.setCharacterEncoding("UTF-8");
然后在web.xml中配置,
<url-pattern>/*</url-pattern> 代表过滤所有的请求
然后在web.xml中配置,
<url-pattern>/*</url-pattern> 代表过滤所有的请求
xiaoqiqianqian (初级程序员) 2008-07-06




