struct+hibernate框架,jsp提交到后台,存到数据库里中文显示乱码问题。

    技术2026-09-02  3

    1.在web.xml文件里添加如下代码:

    <filter>        <filter-name>Set Character Encoding</filter-name>        <filter-class>com.proper.filters.SetCharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>GBK</param-value>        </init-param>    </filter>

     

    <filter-mapping>        <filter-name>Set Character Encoding</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>2.根据<filter-class>的位置建立类 SetCharacterEncodingFilter

    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 {     protected String encoding = null;     protected FilterConfig filterConfig = null;     protected boolean ignore = true;

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

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

        }

         /** *//**     * Select and set (if specified) the character encoding to be used to     * interpret request parameters for this request.     *     * @param request The servlet request we are processing     * @param result The servlet response we are creating     * @param chain The filter chain we are processing     *     * @exception IOException if an input/output error occurs     * @exception ServletException if a servlet error occurs     */    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);

        }

        /** *//**     * Place this filter into service.     *     * @param filterConfig The filter configuration object     */    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

        /** *//**     * Select an appropriate character encoding to be used, based on the     * characteristics of the current request and/or filter initialization     * parameters.  If no character encoding should be set, return     * <code>null</code>.     * <p>     * The default implementation unconditionally returns the value configured     * by the <strong>encoding</strong> initialization parameter for this     * filter.     *     * @param request The servlet request we are processing     */    protected String selectEncoding(ServletRequest request) {

            return (this.encoding);

        }}然后就ok了!

    最新回复(0)