encodingfilter.java

来自「cantain海鲜超市管理系统」· Java 代码 · 共 49 行

JAVA
49
字号
package com.j1132.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 EncodingFilter implements Filter {

	private String encode = "GBK";

	/**
	 * 服务器停止的时候会被调用,只会执行一次
	 */
	public void destroy() {
		// this.getClass().getName()获得当前对象所属的类的完整的类名
		System.out.println(this.getClass().getName() + "destroy方法被调用");
	}

	/**
	 * 根据在web.xml文件里的URL匹配模式,调用这个方法
	 */
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		System.out.println(this.getClass().getName() + "的doFilter方法被调用");
		// 设置请求数据的编码格式
		arg0.setCharacterEncoding(encode);

		// 转到下一个过滤器
		arg2.doFilter(arg0, arg1);
	}

	/**
	 * 服务器启动的时候会被调用,只会调用一次
	 */
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println(this.getClass().getName() + "的init方法被调用");
		// 读取web.xml文件里设定的编码参数对应的值
		String xmlEncoding = arg0.getInitParameter("encoding");

		encode = xmlEncoding;
	}

}

⌨️ 快捷键说明

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