zoukankan      html  css  js  c++  java
  • 过滤器的应用场景

     过滤器的应用场景

    过滤器的应用场景:

    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的配置名称相同!

  • 相关阅读:
    为啥负利率国债有人抢着买?因为时代变了
    微增长时代
    U盘插入电脑后图标是灰色的,打开提示“请将磁盘插入驱动器”
    计算shell 脚本的执行时间
    win10系统应用商店打开后无法联网 代码: 0x80131500 的解决办法
    Jetbrains家的软件都可用的激活码-pycharm
    postman中x-www-form-urlencoded与form-data的区别
    升级Gogs版本
    上海对售价超1499元的茅台酒即没收并另处罚款
    提高收入的根本途径
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/6740836.html
Copyright © 2011-2022 走看看