6-(E-Teller源代码分析)SetRequestEncodingUtil

来源:互联网 发布:java内存溢出的原因 编辑:程序博客网 时间:2024/04/30 15:03
/*
 * Created on 2007-2-3 19:34:27 by mlrain
 */
package cn.com.agree.web.tapestry.presentation.plugin;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;

import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.log4j.Logger;

/**
 * 转换Servlet请求编码的工具类。
 * 将HttpServletRequest 编码设置为传入的编码格式
 * @author mlrain
 * @version 1.00, 2007-2-3 19:34:27
 */
public class SetRequestEncodingUtil
{
    /**
     * 上传文件时的ContentType
     */
    public static final String CONTENT_TYPE_UPLOAD = "multipart/form-data;";

    /**
     * 是否强制转换请求数据的编码类型(true / false)
     */
    public static final String FORCE_REQUEST_CHARACTER_ENCODING = "org.apache.tapestry.mlrain.force-request-character-encoding";

    /**
     * 请求数据强制转换时使用的编码类型(强制转换启用时有效)
     */
    public static final String REQUEST_CHARACTER_ENCODING = "org.apache.tapestry.mlrain.request-character-encoding";

    /**
     * logger
     */
    static Logger logger = Logger.getLogger(SetRequestEncodingUtil.class);

    public static void setRequestEncodingToOutputEncoding(
            HttpServletRequest request, String forceEncoding)
    {
        try
        {
            String encoding = request.getCharacterEncoding();
            if (logger.isDebugEnabled())
                logger.debug("Ori-RequestCharacterEncoding=" + encoding
                        + ",Force-CharactorEncoding=" + forceEncoding);
             //强制转换
            request.setCharacterEncoding(forceEncoding);
        } catch (UnsupportedEncodingException ex)
        {
            throw new ApplicationRuntimeException(
                    "Unsupported Character Encoding:" + forceEncoding, ex);
        }
    }
}
原创粉丝点击