encodingfilter.java

来自「用Java编写的简易的学生信息管理系统,有涉及到java web等」· Java 代码 · 共 59 行

JAVA
59
字号
package com.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;
import javax.servlet.http.HttpServletRequest;

/**
 * 对接收到的请求和响应的编码进行过滤
 * 
 * @author Administrator
 * 
 */
public class EncodingFilter implements Filter {

	private String encoding = "gbk";

	public void destroy() {
		// TODO 自动生成方法存根

	}

	/**
	 * 生成上下文路径,过滤字符编码
	 */
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest req = (HttpServletRequest) request;
		String path = req.getContextPath();
		String basePath = req.getScheme() + "://" + req.getServerName() + ":"
				+ request.getServerPort() + path + "/";

		request.setAttribute("basePath", basePath);

		request.setCharacterEncoding(encoding);
		response.setCharacterEncoding(encoding);
		chain.doFilter(request, response);

	}

	/**
	 * 初始化,如果没有进行编码,把所有字符转换成自定义的编码GBK
	 */
	public void init(FilterConfig config) throws ServletException {
		String code = config.getInitParameter("encoding");
		if (code != null && !code.trim().equals("")) {
			encoding = code;
		}

	}

}

⌨️ 快捷键说明

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