⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encodingfilter.java

📁 高效海量访问系统
💻 JAVA
字号:
/*
 * Created on 2005-1-27
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.util;

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;

import org.apache.log4j.Logger;

public class EncodingFilter implements Filter {
	
    static Logger log = Logger.getLogger(EncodingFilter.class);

    /**
     * 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;

    protected String errurl = "";

    /**
     * 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
     *            ServletRequest
     * @param response
     *            ServletResponse
     * @param chain
     *            FilterChain
     * 
     * @exception IOException
     *                if an input/output error occurs
     * @exception ServletException
     *                if a servlet error occurs
     */
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) {
        String currUrI = null;
        try {
        	//log.debug("into filter!");
            // Conditionally select and set the character encoding to be used
            if (ignore || (request.getCharacterEncoding() == null)) {
                String encoding = getEncoding(request);
                if (encoding != null)
                    request.setCharacterEncoding(encoding);
            }
            //log.debug("设置编码完成!");
            //HttpServletRequest req = (HttpServletRequest) request;
            //HttpServletResponse res = (HttpServletResponse) response;
//            currUrI = req.getRequestURI().toString();
//
//            log.debug("应用虚拟路径:" + req.getContextPath());
//
//            log.debug("currUrl:" + currUrI);
//            log.debug(":Uri=" + req.getRequestURI());
//            log.debug(":servletpath=" + req.getServletPath());
            /*
             * /检验用户是否登陆 if (islogin.equals("") || islogin.trim().length() < 1) {
             * 
             * HttpSession session = req.getSession(); String islogin =
             * CB.NullToSp( (String) session.getAttribute("_IsadslLogin")); if
             * (currUrI.lastIndexOf("jsp") != -1 || currUrI.lastIndexOf(".do") !=
             * -1) { if (!currUrI.equals(req.getContextPath() + errurl)) {
             * res.sendRedirect(req.getContextPath() + errurl+"?flag=1"); } } }
             * //检验用户是否登陆
             */
            // Pass control on to the next filter
            chain.doFilter(request, response);
        } catch (IOException e) {
            e.printStackTrace();
            log.error("EncodingFilter.IO 异常:" + e.toString());
        } catch (Exception e) {
            e.printStackTrace();
            log.error("EncodingFilter.Exception 异常 :" + e.toString());
        } finally {
            
        }

    }

    /**
     * Place this filter into service.
     * 
     * @throws ServletException
     * @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
     * @return String
     */
    protected String getEncoding(ServletRequest request) {

        return (this.encoding);

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -