• 过滤器的应用场景


     过滤器的应用场景

    过滤器的应用场景:

    l  执行目标资源之前做预处理工作,例如设置编码,这种试通常都会放行,只是在目标资源执行之前做一些准备工作;[c1] 

    l  通过条件判断是否放行,例如校验当前用户是否已经登录,或者用户IP是否已经被禁用;

    l  在目标资源执行后,做一些后续的特殊处理工作,例如把目标资源输出的数据进行处理[c2] ;

    7 设置目标资源

    在web.xml文件中部署Filter时,可以通过“*”来执行目标资源:

        <filter-mapping>

           <filter-name>myfilter</filter-name>

           <url-pattern>/*</url-pattern>[崔3] 

        </filter-mapping>

    这一特性与Servlet完全相同!通过这一特性,我们可以在用户访问敏感资源时,执行过滤器,例如:<url-pattern>/admin/*<url-pattern>,可以把所有管理员才能访问的资源放到/admin路径下,这时可以通过过滤器来校验用户身份。

    还可以为<filter-mapping>指定目标资源为某个Servlet,例如:

        <servlet>

           <servlet-name>myservlet</servlet-name>

           <servlet-class>cn.itcast.servlet.MyServlet</servlet-class>

        </servlet>

        <servlet-mapping>

           <servlet-name>myservlet</servlet-name>

           <url-pattern>/abc</url-pattern>

        </servlet-mapping>

        <filter>

           <filter-name>myfilter</filter-name>

           <filter-class>cn.itcast.filter.MyFilter</filter-class>

        </filter>

        <filter-mapping>

           <filter-name>myfilter</filter-name>

           <servlet-name>myservlet</servlet-name>[崔4] 

        </filter-mapping>

      当用户访问http://localhost:8080/filtertest/abc时,会执行名字为myservlet的Servlet,这时会执行过滤器。


     [c1]几乎是的Sevlet中都需要写request.setCharacterEndoing() 可以把它入到一个Filter中

     [c2]回程拦截!

     [崔3]表示过滤所有资源

     [崔4]这里没有指定<url-pattern>,而是指定<servlet-name>!注意,它与某个Servlet的配置名称相同!

  • 相关阅读:
    券商
    养生之道
    房产买卖
    货币常识
    虚拟币
    其他开源项目
    Shiro
    文件上传插件
    JAVA常见问题
    如何写好PPT
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/6740836.html
Copyright © 2020-2023  润新知