zoukankan      html  css  js  c++  java
  • Shiro Filter引发的思考

    FilterChain过滤链

    假设我们有两个Filter(HelloFilter 和WorldFilter ),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    WorldFilter doFilter start......
    Hello业务方法......
    WorldFilter doFilter end......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且不再执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    WorldFilter doFilter end......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),WorldFilter的doFilter中有请求转发或者是重定向至filter业务路径再执行chain.doFilter(reques, response)或者是不再执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),WorldFilter的doFilter执行chain.doFilter(reques, response)或者是再请求转发或者是重定向至filter业务路径,一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    Hello业务方法......
    java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
  • 相关阅读:
    低调 、隐忍、善良应是最应该修炼的
    达内C++培训课程
    这三天低效率开发的总结,我都做了些什么啊?
    linux sysfs(1)
    编码问题
    Linux中的system函数的实现和解释
    北京邮电大学 程序设计课程设计 电梯 文件输入版本(已调试,大致正确运行==)
    "Dallas" CTP3 发布通告
    结合使用PowerPivot 和 "Dallas" CTP3
    Windows Azure 解决方案系列: 能源监测减少支出,通过托管平台拓展业务
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/9378522.html
Copyright © 2011-2022 走看看