encodingfilter.java

来自「留言簿架构 oracle 9i + jsp + struts 留言」· Java 代码 · 共 54 行

JAVA
54
字号
package com.guestbook.web;

import javax.servlet.http.HttpServlet;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.http.*;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;

public class EncodingFilter extends HttpServlet
							implements Filter
{
	private FilterConfig filterConfig;
	private String targetEncoding = "gb2312";
	private static final Log logger = LogFactory.getLog(EncodingFilter.class);
	 
	public void init(FilterConfig filterConfig) throws ServletException
	{
		this.filterConfig = filterConfig;
		this.targetEncoding = filterConfig.getInitParameter("encoding");
	}
	
	public void doFilter(ServletRequest srequest, ServletResponse sresponse,
              FilterChain chain) throws IOException, ServletException
      {
		try
		{
			HttpServletRequest request = ( HttpServletRequest ) srequest;
			request.setCharacterEncoding( "gb2312" );
			chain.doFilter( srequest, sresponse );
		}
		catch (ServletException sx)
		{
			filterConfig.getServletContext().log(sx.getMessage());
		}
		catch (IOException iox)
		{
			filterConfig.getServletContext().log(iox.getMessage());
		}
	}

	public void destroy()
	{
	    filterConfig = null;
	    targetEncoding = null;
	}
}

⌨️ 快捷键说明

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