Servlet过滤器

来源:互联网 发布:windows java进程监控 编辑:程序博客网 时间:2024/06/08 15:46
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
  • 查看图片附件
原创粉丝点击