b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

jsp - filter过滤器使用详解(4)

电脑杂谈  发布时间:2017-12-25 20:08:08  来源:网络整理

< filter>指定一个过滤器。

< filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。

< filter-class>元素用于指定过滤器的完整的限定类名。

< init-param>元素用于为过滤器指定初始化参数,它的子元素< param-name>指定参数的名字,< param-value>指定参数的值。

在过滤器中,可以使用FilterConfig接口对象来访问初始化参数。

< filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径

< filter-name>子元素用于设置filter的注册名称。该值必须是在< filter>元素中声明过的过滤器的名字

< url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)

< servlet-name>指定过滤器所拦截的Servlet名称。

< dispatcher>指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个< dispatcher>子元素用来指定 Filter 对资源的多种调用方式进行拦截。

< dispatcher>子元素可以设置的值及其意义

REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。

INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。

FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。

ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。

为了避免提交数据的中文乱码问题,Filter可以批量拦截修改servlet的请求和响应。

我们编写一个EncodingFilter.java,来批量设置请求编码。

public class EncodingFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {}
    public void destroy() {}
    public void doFilter(ServletRequest request,
            ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException {
        request.setCharacterEncoding("gb2312");
        chain.doFilter(request, response);
    }
}

为请求设置gb2312编码并执行chain.doFilter()继续下面的操作。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-55857-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 清流
      清流

      说不好的要么不是苹果用户或者机器太老

    • 刘曜
      刘曜

      有去无回

    热点图片
    拼命载入中...