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
  • 相关阅读:
    ECMall模板开发文档
    ECmall错误:Call to a member function get_users_count() on a non-object
    剖析ECMALL的登录机制
    分析ECMall的注册与登录机制
    ECMall的MySQL数据调用的简单方法
    ECMall系统请求跳转分析
    Ecmall系统自带的分页功能
    ECMall注册机制简要分析
    [Ecmall]ECMALL目录结构设置与数据库表
    [ecmall]Ecmall 后台添加模板编辑区
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/9378522.html
Copyright © 2011-2022 走看看