论坛首页 海阔天空论坛

struts中文乱码..添加过滤器( --修改)

浏览 1892 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (13)
作者 正文
   发表时间:2011-04-13  
-------------------------------------
SetCharacterEncodingFilter.java
------------------------------------------------------------------------------
package com.core.filter;
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;
public class SetCharacterEncodingFilter implements Filter {

        // ----------------------------------------------------- Instance Variables

        /**
         * The default character encoding to set for requests that pass through this
         * filter.
         */
        protected String encoding = null;

        /**
         * The filter configuration object we are associated with. If this value is
         * null, this filter instance is not currently configured.
         */
        protected FilterConfig filterConfig = null;

        /**
         * Should a character encoding specified by the client be ignored?
         */
        protected boolean ignore = true;

        // --------------------------------------------------------- Public Methods

        /**
         * Take this filter out of service.
         */
        public void destroy() {

                this.encoding = null;
                this.filterConfig = null;

        }

        public void doFilter(ServletRequest request, ServletResponse response,
                        FilterChain chain) throws IOException, ServletException {

                // Conditionally select and set the character encoding to be used
                if (ignore || (request.getCharacterEncoding() == null)) {
                        String encoding = selectEncoding(request);
                        if (encoding != null)
                                request.setCharacterEncoding(encoding);
                }

                // Pass control on to the next filter
                chain.doFilter(request, response);

        }

        public void init(FilterConfig filterConfig) throws ServletException {

                this.filterConfig = filterConfig;
                this.encoding = filterConfig.getInitParameter("encoding");
                String value = filterConfig.getInitParameter("ignore");
                if (value == null)
                        this.ignore = true;
                else if (value.equalsIgnoreCase("true"))
                        this.ignore = true;
                else if (value.equalsIgnoreCase("yes"))
                        this.ignore = true;
                else
                        this.ignore = false;

        }

        // ------------------------------------------------------ Protected Methods

        protected String selectEncoding(ServletRequest request) {

                return (this.encoding);

        }

}
-----------------http://bbs.17testing.com/thread-6528-1-1.html---------------------------------------------------



在web.xml  添加:
        <filter>
                <filter-name>EncodingFilter</filter-name>
            
                <filter-class>
                        systemadmin.SetCharacterEncodingFilter
                </filter-class>
                <init-param>
                        <param-name>encoding</param-name>
                        <param-value>UTF-8</param-value>
                </init-param>
        </filter>
        <filter-mapping>
                <filter-name>EncodingFilter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics