jsp适用过滤器写法详解编程语言

利用过滤器来给servlet设置编码

public class CharacterEncodingFilter implements Filter{ 
 
    @Override 
    public void destroy() { 
        // TODO Auto-generated method stub 
         
    } 
 
    @Override 
    public void doFilter(ServletRequest arg0, ServletResponse arg1, 
            FilterChain arg2) throws IOException, ServletException { 
        // TODO Auto-generated method stub 
        HttpServletRequest request=(HttpServletRequest)arg0; 
        request.setCharacterEncoding("utf-8"); 
        arg2.doFilter(arg0, arg1); 
    } 
 
    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 
        // TODO Auto-generated method stub 
         
    } 
 
}

同时要在XML文件到场下面的内容使其有用

<filter> 
        <filter-name>CharacterEncodingFilter</filter-name> 
        <filter-class>com.smn.filter.CharacterEncodingFilter</filter-class> 
</filter> 
<filter-mapping> 
        <filter-name>CharacterEncodingFilter</filter-name> 
        <url-pattern>*</url-pattern> 
        <dispatcher>REQUEST</dispatcher> 
        <dispatcher>INCLUDE</dispatcher> 
        <dispatcher>ERROR</dispatcher> 
        <dispatcher>FORWARD</dispatcher> 
</filter-mapping>
  • <dispatcher>指定过滤器所阻挡的资本被 Servlet 容器挪用的体式格局,可所以REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个<dispatcher>子元素用来指定 Filter 对资本的多种挪用体式格局进行阻挡。
  • <dispatcher>子元素可以设置的值及其意义
  • REQUEST:当用户直接接见页面时,Web容器将会挪用过滤器。假如目的资本是经由过程RequestDispatcher的include()或forward()方式接见时,那么该过滤器就不会被挪用。
  • INCLUDE:假如目的资本是经由过程RequestDispatcher的include()方式接见时,那么该过滤器将被挪用。除此之外,该过滤器不会被挪用。
  • FORWARD:假如目的资本是经由过程RequestDispatcher的forward()方式接见时,那么该过滤器将被挪用,除此之外,该过滤器不会被挪用。
  • ERROR:假如目的资本是经由过程声明式异常处置惩罚机制挪用时,那么该过滤器将被挪用。除此之外,过滤器不会被挪用。

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/11708.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论