锁定老帖子 主题:一个非常优秀的AJAX中文问题解决过滤器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-15
代码如下:
public class AjaxEncodeFilter extends HttpServlet implements Filter { /** * AJAX使用中的字符过滤器,解决中文问题 */ private static final long serialVersionUID = 1L; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { /* if (logger.isDebugEnabled()) { logger.debug("doFilter(ServletRequest, ServletResponse, FilterChain) - start"); //$NON-NLS-1$ } */ HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String requestedWith = request.getHeader("x-requested-with"); String type = request.getContentType(); if (requestedWith != null && "XMLHttpRequest".equals(requestedWith) && null != type && "application/x-www-form-urlencoded".equals(type)) { // logger.info("This's ajax post.set encode is UTF-8."); request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); request.getParameterMap(); } filterChain.doFilter(request, response); /* if (logger.isDebugEnabled()) { logger.debug("doFilter(ServletRequest, ServletResponse, FilterChain) - end"); //$NON-NLS-1$ } */ } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-11-16
非常优秀?
你这个过滤器挺小奥。你很确认前台发送过来的就是utf8编码? 上午测试时候发现前台设置utf8编码后,从Firefox、IE可以发送正常的ajax请求,从360浏览器发送出来的就不正常了。 最好还是在前台就encode一下,后台再URLDecode。 Ajax请求我感觉不同浏览器(尤其是360浏览器)搞得比较奇怪。 |
|
返回顶楼 | |
发表时间:2011-11-17
lz自己心里非常好而已
|
|
返回顶楼 | |
发表时间:2011-11-18
encode和urlcode是针对于能否进行url编址,另外ajax也分几种传输方式
|
|
返回顶楼 | |
发表时间:2011-11-18
这样的过滤范围太小了吧,我看标题,还以为是个火狐的哪个乱码处理一样呢。。
|
|
返回顶楼 | |
发表时间:2011-11-18
标题党一个。
|
|
返回顶楼 | |
发表时间:2011-11-18
标题党一个。
|
|
返回顶楼 | |
发表时间:2011-11-18
超级标题党
|
|
返回顶楼 | |
发表时间:2011-11-18
虽然没明白,但也没觉得好厉害
|
|
返回顶楼 | |
发表时间:2011-11-18
真是标题党啊
|
|
返回顶楼 | |