`
xp9802
  • 浏览: 1207951 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个非常优秀的AJAX中文问题解决过滤器

 
阅读更多

代码如下:

 

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
            
        }  
}

 

分享到:
评论

相关推荐

    Ajax过滤器

    总的来说,Ajax过滤器是一种解决Web应用中中文乱码问题的有效手段,通过在请求和响应之间添加一层处理,可以确保数据以正确的编码进行传输,提高应用的兼容性和用户体验。在实际项目中,根据具体需求,可能还需要...

    如过你配置了过滤器无用,下面以下方可以解决AJAX中文乱码

    在进行Web开发的过程中,经常遇到的一个问题是中文字符的编码问题,尤其是在使用AJAX技术时。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。由于其异步...

    ssh框架乱码过滤器Filter

    本篇文章将详细探讨SSH框架中的中文乱码问题,以及如何通过实现自定义过滤器(Filter)来解决这一问题。 首先,我们要理解乱码的产生原因。在HTTP请求中,数据编码格式不一致是导致乱码的主要因素。例如,客户端...

    Struts框架下Ajax发送中文乱码问题的解决

    总结来说,解决Struts框架下Ajax发送中文乱码问题的关键在于: 1. 确保Ajax请求时设置正确的`Content-Type`,以UTF-8编码发送数据。 2. 在Struts配置文件中配置`CharacterEncodingFilter`或在Action中手动设置请求...

    Ajax乱码解决方案(docx)

    总结,解决Ajax乱码问题的关键在于确保编码的统一,从文件编码、请求头、服务器端处理到响应头,每个环节都要设定为UTF-8,以保证数据在传输和处理过程中的正确性。同时,对编辑器的配置也很重要,确保它保存文件时...

    struts中文乱码问题解决详细步骤

    1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`CharacterEncodingFilter`,这个过滤器会在请求进入控制器之前设置正确的字符编码。 ```xml <filter-name>characterEncodingFilter ...

    ajax中文乱码问题解决方案

    在开发Web应用程序时,尤其是在处理中文字符时,Ajax中文乱码问题是一个常见的困扰。这是因为不同的系统、浏览器、服务器和文件可能使用不同的字符编码,导致数据在传输过程中出现不匹配,从而引发乱码。解决这个...

    AJAX中文乱码

    ### AJAX中文乱码解决方案 在Web开发中,尤其是使用AJAX技术进行前后端交互时,中文乱码问题是一个常见的挑战。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的...

    AJAX乱码解决大全.doc

    综上所述,解决AJAX乱码的关键在于全栈编码一致性管理,从文件编码、请求响应处理到资源文件编码,每一个环节都需要严格遵循同一编码标准,特别是UTF-8,以确保中文字符在传输过程中的正确无误。

    struts下的汉字乱码问题

    在Struts框架中,汉字乱码问题是一个常见的问题,特别是在处理中文输入时。解决这个问题涉及到多个层面,包括页面编码设置、服务器配置以及Struts的Servlet配置。以下是对这些问题的详细解释: 1. 页面编码设置: ...

    struts,ajax乱码解决方案

    在Web开发中,乱码问题始终是一个常见的困扰,特别是对于使用Struts和Ajax技术的开发者来说。乱码问题主要出现在数据的输入、传输和展示过程中,涉及到编码格式的选择和一致性。以下是一些解决此类问题的关键点。 1...

    ajax异步请求小结

    为防止这种情况,可以在URL后添加一个随机数或者时间戳,如`'check_uname.do?username=tom&timestamp=' + new Date().getTime()`。 ### 乱码问题与解决 - **POST请求乱码**:浏览器使用UTF-8编码,服务器默认使用...

    JQuery发送ajax请求时中文乱码问题解决

    总结以上所述,要解决JQuery发送ajax请求时出现的中文乱码问题,需要从两个方面着手:确保Web项目的web.xml配置文件中设置了正确的字符编码过滤器,以及在JSP页面中设置了正确的字符编码,并使用POST方法发送ajax...

    JSP乱码终极攻略和AJAX初步运用

    如果尝试使用GBK解码,可能会遇到奇怪的问题,例如最后一个汉字显示为问号。这是因为UTF-8编码的中文字符在传输时会带有字节顺序标记(BOM),即`EF BB BF`,在解码时如果不正确处理,会导致解码失败。 为了解决这...

    extjs中文教程 ajax

    ExtJS 是一个强大的JavaScript应用程序框架,它主要用于构建富客户端Web应用。这个中文教程涵盖了ExtJS的核心概念、组件和Ajax技术的使用,同时也涉及到与Java后端的交互。让我们深入探讨这些知识点。 首先,ExtJS...

    jsp的ajax例子源码下载

    【标题】:“jsp的ajax例子源码下载”指的是一个基于JSP(JavaServer Pages)技术的Web应用示例,该示例使用了AJAX(Asynchronous JavaScript and XML)技术来实现页面的异步更新,无需刷新整个网页即可与服务器进行...

    AJAX学习资料之-DWR中文手册

    对于想要深入了解Ajax及其相关技术的开发者而言,《AJAX学习资料之-DWR中文手册》提供了一个很好的学习资源。DWR(Direct Web Remoting)是一种基于Ajax的技术,它使得从客户端JavaScript调用服务器端Java方法变得...

    基于AJAX结合SpringMVC的信息访问服务模式研究

    在Spring MVC中,可以通过配置文件或注解设定字符编码过滤器,确保请求和响应都按照预期的编码进行处理。 在实际应用中,例如资源查询功能,用户在客户端输入关键词,AJAX会将关键词发送到服务器,服务器通过Spring...

Global site tag (gtag.js) - Google Analytics