`

Servlet过滤器

 
阅读更多
Servlet 过 滤 器拦截请求和响应,以便查看、提取或操作客户机和服务器之间交换的数据,他的用途有:
  • 用户认证与授权管理。
  • 统计Web应用的访问量,和访问的命中率,形成访问报告。
  • 实现Web应用的日志处理功能。
  • 实现数据压缩功能。
  • 对传输的数据进行加密。
  • 实现XML文件的XSLT转换。


javax.servlet.Filter接口
package javax.servlet;
import java.io.IOException;
  public interface Filter {
    public void init(FilterConfig filterConfig) throws ServletException;

    public void doFilter ( ServletRequest request, ServletResponse response,        FilterChain chain ) throws IOException, ServletException;
  
    public void destroy();
}


例子:用过滤器实现reqiest字符集的装换
CharacterEncodingFilter.java
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 CharacterEncodingFilter implements Filter {
	private FilterConfig config;
	private String encoding = "ISO8859_1";

	public void destroy() {
		config = null;
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding(encoding);
		chain.doFilter(request, response);
	}

	public void init(FilterConfig config) throws ServletException {
		this.config = config;
		String s = config.getInitParameter("encoding");
		if (s != null) {
			encoding = s;
		}
	}
}


修改web.xml
<filter>
	<filter-name>EncodingFilter</filter-name>
	<filter-class>com.v512.guestbook.CharacterEncodingFilter</filter-class>	
	<init-param>
	  <param-name>encoding</param-name>
	  <param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>EncodingFilter	</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>	
  • 大小: 13.8 KB
  • 大小: 16.7 KB
  • 大小: 16.1 KB
  • 大小: 17.5 KB
  • 大小: 13.1 KB
  • 大小: 32.1 KB
  • 大小: 32.1 KB
  • 大小: 32 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics